--- services: client: container_name: client depends_on: server: condition: service_healthy environment: VITE_BACKEND_SERVER: http://localhost:8585 VITE_BUILD: snapshot image: ghcr.io/ricardo-campos-org/react-typescript-todolist/client:candidate ports: - "5000:5000" server: container_name: server depends_on: db: condition: service_healthy environment: POSTGRES_DB: tasknote POSTGRES_HOST: db POSTGRES_USER: tasknoteuser POSTGRES_PASSWORD: default POSTGRES_PORT: 5432 CORS_ALLOWED_ORIGINS: http://localhost:5000 SERVER_SERVLET_CONTEXT_PATH: / SECURITY_KEY: ${SECURITY_KEY} TARGET_ENV: production ports: - "8585:8585" image: server:candidate db: container_name: db image: postgres:15.8-bookworm 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