services: frontend: build: context: . dockerfile: packages/frontend/Dockerfile image: heavrnl/nexus-terminal-frontend:latest container_name: nexus-terminal-frontend ports: - "18111:80" depends_on: - backend - rdp - vnc networks: - nexus-terminal-network backend: build: context: . dockerfile: packages/backend/Dockerfile env_file: - .env image: heavrnl/nexus-terminal-backend:latest container_name: nexus-terminal-backend ports: - "3001:3001" environment: NODE_ENV: production PORT: 3001 RDP_BACKEND_API_BASE: http://rdp:9090 VNC_BACKEND_API_BASE: http://vnc:9091 volumes: - ./data:/app/data networks: - nexus-terminal-network rdp: build: context: . dockerfile: packages/rdp/Dockerfile image: heavrnl/nexus-terminal-rdp:latest container_name: nexus-terminal-rdp environment: GUACD_HOST: guacd GUACD_PORT: 4822 API_PORT: 9090 GUAC_WS_PORT: 8081 FRONTEND_URL: http://frontend MAIN_BACKEND_URL: http://backend:3001 NODE_ENV: production networks: - nexus-terminal-network depends_on: - guacd - backend vnc: build: context: . dockerfile: packages/vnc/Dockerfile image: nexus-vnc # 保持与 docker-compose.yml 中的 image 名称一致 container_name: nexus-vnc ports: - "9091:9091" - "8082:8082" environment: GUACD_HOSTNAME: guacd GUACD_PORT: 4822 VNC_PORT: 9091 VNC_WS_PORT: 8082 ENCRYPTION_KEY: ${ENCRYPTION_KEY} FRONTEND_URL: ${FRONTEND_URL} MAIN_BACKEND_URL: ${MAIN_BACKEND_URL} NODE_ENV: production networks: - nexus-terminal-network depends_on: - guacd - backend guacd: image: guacamole/guacd:latest container_name: nexus-terminal-guacd networks: - nexus-terminal-network restart: unless-stopped networks: nexus-terminal-network: driver: bridge