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 environment: - APP_ENV=production - CAMTALK_STORAGE_DRIVER=postgres - CAMTALK_STORAGE_DSN=postgres://camtalk:camtalk123@postgres:5432/camtalk?sslmode=disable - CAMTALK_AUTH_JWT_SECRET=78uWBBAF8XEQEotKDlrnlnd4y8i4WN3E4zXmNmC8BYQ= depends_on: postgres: condition: service_healthy networks: - camtalk-net restart: unless-stopped postgres: # 轩辕镜像加速,避免 Docker Hub 拉取超时 image: docker.m.daocloud.io/library/postgres:15-alpine container_name: camtalk-postgres environment: POSTGRES_USER: camtalk POSTGRES_PASSWORD: camtalk123 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 camtalk -d camtalk"] interval: 5s timeout: 3s retries: 10 restart: unless-stopped volumes: pgdata: networks: camtalk-net: driver: bridge