Files
lisilou-portfolio/docker-compose.yml
T
jhodgkin e824be7e5d
Build and Deploy / build (push) Failing after 20s
Build and Deploy / deploy (push) Has been skipped
Add Node.js/Express API service for booking backend
- New api/ service: Express + better-sqlite3, health check at GET /api/health,
  POST /api/bookings stores sessions with all required fields
- Dockerfile with Alpine build deps for native sqlite3 module
- docker-compose.yml: api service with volume mounts for data, signed-contracts, contracts
- nginx.conf: proxy /api/ to api:3001; Immich regex locations remain higher priority
- .gitignore: exclude SQLite db file and signed PDFs from version control

Closes #1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 22:30:18 -06:00

52 lines
1.2 KiB
YAML

version: '3.8'
services:
portfolio:
build:
context: .
dockerfile: Dockerfile
container_name: lisilou-portfolio
restart: unless-stopped
ports:
- "8080:80"
volumes:
# Mount config for easy updates without rebuilding
- ./config:/usr/share/nginx/html/config:ro
# Mount images for easy updates
- ./public/images:/usr/share/nginx/html/images:ro
environment:
- TZ=America/Denver
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- web
api:
build:
context: ./api
dockerfile: Dockerfile
container_name: lisilou-api
restart: unless-stopped
env_file:
- ./api/.env
volumes:
- ./api/data:/app/data
- ./api/signed-contracts:/app/signed-contracts
- ./api/contracts:/app/contracts:ro
networks:
- web
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3001/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
networks:
web:
external: true