--- services: tasknote-web: container_name: tasknote-web depends_on: tasknote-api: condition: service_healthy image: ghcr.io/rmcampos/tasknote/app:latest build: context: ./client dockerfile: Dockerfile ports: ["5000:5000"] networks: - tasknote-network tasknote-api: container_name: tasknote-api depends_on: tasknote-db: condition: service_healthy environment: POSTGRES_DB: tasknote POSTGRES_HOST: tasknote-db POSTGRES_USER: tasknoteuser POSTGRES_PASSWORD: default POSTGRES_PORT: 5432 CORS_ALLOWED_ORIGINS: http://tasknote-web:5000, http://localhost:5000, https://flattop-depth-dropper.ngrok-free.dev SERVER_SERVLET_CONTEXT_PATH: / TARGET_ENV: production SECURITY_KEY: ${SECURITY_KEY:-default-security-key} MAILGUN_APIKEY: ${MAILGUN_APIKEY:-default-mailgun-apikey} ports: ["8585:8585"] image: ghcr.io/rmcampos/tasknote/api:latest healthcheck: test: ["CMD", "/layers/local_healthcheck/healthcheck/bin/healthcheck"] interval: 10s timeout: 5s retries: 3 start_period: 5s networks: - tasknote-network tasknote-db: container_name: tasknote-db image: postgres:16 environment: POSTGRES_DB: tasknote POSTGRES_USER: tasknoteuser POSTGRES_PASSWORD: default ports: ["5432:5432"] healthcheck: test: psql -q -U $${POSTGRES_USER} -d $${POSTGRES_DB} -c 'SELECT 1' interval: 1m30s timeout: 15s retries: 3 start_period: 10s networks: - tasknote-network networks: tasknote-network: external: true