87 lines
2.0 KiB
YAML
87 lines
2.0 KiB
YAML
services:
|
|
frontend:
|
|
image: heavrnl/nexus-terminal-frontend:latest
|
|
container_name: nexus-terminal-frontend
|
|
ports:
|
|
- "18111:80"
|
|
depends_on:
|
|
- backend
|
|
- rdp
|
|
- vnc
|
|
networks:
|
|
- nexus-terminal-network
|
|
|
|
backend:
|
|
image: heavrnl/nexus-terminal-backend:latest
|
|
container_name: nexus-terminal-backend
|
|
env_file:
|
|
- .env
|
|
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:
|
|
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:
|
|
container_name: nexus-vnc
|
|
image: nexus-vnc # 确保这个标签与 docker-compose.build.yml 或直接构建命令中的标签一致
|
|
build:
|
|
context: ./packages/vnc
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- "9091:9091" # VNC API port
|
|
- "8082:8082" # VNC WebSocket port
|
|
environment:
|
|
GUACD_HOSTNAME: guacd
|
|
GUACD_PORT: 4822
|
|
VNC_PORT: 9091
|
|
VNC_WS_PORT: 8082
|
|
ENCRYPTION_KEY: ${ENCRYPTION_KEY} # 复用 RDP 的密钥
|
|
FRONTEND_URL: ${FRONTEND_URL}
|
|
MAIN_BACKEND_URL: ${MAIN_BACKEND_URL}
|
|
NODE_ENV: production
|
|
restart: unless-stopped
|
|
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
|
|
name: nexus-terminal-network
|
|
enable_ipv6: true
|
|
ipam:
|
|
config:
|
|
- subnet: fd01::/80
|
|
gateway: fd01::1
|