version: '3.8' services: # NOFX Trading Backend nofx: build: context: . dockerfile: Dockerfile container_name: nofx-trading restart: unless-stopped ports: - "${NOFX_BACKEND_PORT:-8080}:8080" volumes: - ./config.json:/app/config.json:ro - ./decision_logs:/app/decision_logs - /etc/localtime:/etc/localtime:ro # 同步主机时间 - frontend-dist:/app/web/dist-shared:rw # 共享前端文件 environment: - TZ=${NOFX_TIMEZONE:-Asia/Shanghai} # 使用中国时区 networks: - nofx-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s command: sh -c "cp -r /app/web/dist/* /app/web/dist-shared/ 2>/dev/null || true && exec ./nofx" # Frontend (Nginx) nofx-frontend: image: nginx:alpine container_name: nofx-frontend restart: unless-stopped ports: - "${NOFX_FRONTEND_PORT:-3000}:80" volumes: - frontend-dist:/usr/share/nginx/html:ro - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro networks: - nofx-network depends_on: - nofx volumes: frontend-dist: networks: nofx-network: driver: bridge