TechLibrary/docker-compose.yml

50 lines
1.2 KiB
YAML

services:
web:
build:
context: .
target: web
ports:
- "${HOST_PORT:-8000}:80"
depends_on:
api:
condition: service_healthy
restart: unless-stopped
api:
build:
context: .
target: api
environment:
NODE_ENV: production
PORT: 3001
DATABASE_URL: /data/tech-library.db
WEB_ORIGIN: ${WEB_ORIGIN:-http://localhost:8000}
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD_HASH: ${ADMIN_PASSWORD_HASH:?Set ADMIN_PASSWORD_HASH}
SESSION_SECRET: ${SESSION_SECRET:?Set SESSION_SECRET}
volumes:
- tech-library-data:/data
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://localhost:3001/health').then(r=>{if(!r.ok)process.exit(1)})"]
interval: 15s
timeout: 5s
retries: 5
restart: unless-stopped
worker:
build:
context: .
target: worker
environment:
NODE_ENV: production
DATABASE_URL: /data/tech-library.db
SOURCE_POLL_INTERVAL_HOURS: ${SOURCE_POLL_INTERVAL_HOURS:-24}
volumes:
- tech-library-data:/data
depends_on:
api:
condition: service_healthy
restart: unless-stopped
volumes:
tech-library-data: