services: postgres: image: postgres:16-alpine container_name: toir-light-v14-postgres restart: unless-stopped environment: POSTGRES_DB: toir-light-v14 POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data networks: - internal backend: build: context: ./backend dockerfile: Dockerfile args: CACHE_BUST: "1777124748815-634187ad" container_name: toir-light-v14-backend restart: unless-stopped depends_on: - postgres environment: DATABASE_URL: postgresql://${DB_USER}:${DB_PASSWORD}@postgres:5432/toir-light-v14 KEYCLOAK_ISSUER_URL: ${KEYCLOAK_ISSUER_URL} KEYCLOAK_AUDIENCE: ${KEYCLOAK_AUDIENCE} NODE_ENV: production networks: - internal frontend: build: context: ./frontend dockerfile: Dockerfile args: CACHE_BUST: "1777124748815-634187ad" VITE_KEYCLOAK_URL: ${VITE_KEYCLOAK_URL} VITE_KEYCLOAK_REALM: ${VITE_KEYCLOAK_REALM} VITE_KEYCLOAK_CLIENT_ID: ${VITE_KEYCLOAK_CLIENT_ID} container_name: toir-light-v14-frontend restart: unless-stopped networks: - internal nginx: build: context: ./nginx dockerfile: Dockerfile args: CACHE_BUST: "1777124748815-634187ad" container_name: toir-light-v14-nginx restart: unless-stopped depends_on: - backend - frontend networks: - internal - proxy volumes: postgres_data: networks: internal: proxy: external: true