services: frontend: build: context: ./frontend dockerfile: Dockerfile container_name: camtalk-frontend ports: - "9000:80" depends_on: - backend networks: - camtalk-net restart: unless-stopped backend: build: context: ./backend dockerfile: Dockerfile container_name: camtalk-backend env_file: - /opt/camtalk/.env environment: - CAMTALK_STORAGE_DRIVER=${CAMTALK_STORAGE_DRIVER:-postgres} - CAMTALK_STORAGE_DSN=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/camtalk?sslmode=disable depends_on: postgres: condition: service_healthy networks: - camtalk-net restart: unless-stopped postgres: image: docker.m.daocloud.io/library/postgres:15-alpine container_name: camtalk-postgres environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: camtalk volumes: - pgdata:/var/lib/postgresql/data - ./backend/migrations:/docker-entrypoint-initdb.d networks: - camtalk-net healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d camtalk"] interval: 5s timeout: 3s retries: 10 restart: unless-stopped volumes: pgdata: networks: camtalk-net: driver: bridge