DCTS/docker-compose.yml
Asfmq b91f1e4fa5 feat(server,dashboard): 引入多工作流数据隔离、安全中间件与前端 ESM 模块化重构
- server: 实现按 workflow_name 的多工作流数据隔离与旧数据库平滑迁移机制
- server: 新增 API Key 认证(auth)、限流中间件(rate_limit)与运维备份接口(admin)
- server: 统一 AppError 错误处理体系,重构调度器 scheduler 支持工作流级重置与抢占
- node: 节点 ID 缺失时自动生成随机 UUID,原生支持 `docker compose --scale node=N` 动态扩容
- dashboard: 前端模块化重构(state/api/components),升级 CSS 变量设计系统与 Toast 通知
- docker/docs: 更新 /healthz 健康检查、部署脚本 IP 配置及数据库设计文档
2026-07-28 21:54:02 +08:00

80 lines
2.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# =============================================================================
# DCTS (Distributed Computing TLUSTY/SYNSPEC) Docker Compose 容器集群部署编排
# =============================================================================
#
# 快速启动:
# 1. docker compose up -d --build
# 2. 访问 Dashboard 控制台: http://localhost:8090
#
# 拓展计算节点数量:
# docker compose up -d --scale dcts-node=3
#
# 停止集群:
# docker compose down
# =============================================================================
services:
# ─── 1. DCTS 主控/Web 节点 (Server + Dashboard) ─────────────────────────────
server:
build:
context: .
dockerfile: Dockerfile.server
image: dcts-server:latest
container_name: dcts-server
restart: unless-stopped
# 开发/内网模式:直接暴露 8090。
# 公网模式(--profile public下由 proxy 容器接管 443此处端口暴露建议关闭或改为 127.0.0.1。
ports:
- "${DCTS_PORT:-8090}:8090"
env_file:
- .env
environment:
- DCTS_PORT=8090
- DCTS_DB_PATH=/app/data/dcts.db
- DCTS_QUEUE_DB_PATH=/app/data/dcts_queue.db
- DCTS_RESULTS_DIR=/app/data/results
- DCTS_BACKUP_DIR=/app/data/backups
- DCTS_ASSETS_DIR=/app/assets
- DCTS_LOG=info,server=debug
volumes:
- ./assets:/app/assets:ro
- ./data:/app/data
- ./logs/server:/app/logs
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://localhost:8090/healthz"]
interval: 15s
timeout: 5s
retries: 3
start_period: 10s
# ─── 2. DCTS Fortran 计算 Worker 节点 ──────────────────────────────────────
node:
build:
context: .
dockerfile: Dockerfile.node
image: dcts-node:latest
restart: unless-stopped
depends_on:
server:
condition: service_healthy
env_file:
- .env
environment:
# DCTS_NODE_ID 留空:由 config.rs 对空串/缺失回退为随机 UUIDnode-<uuid>
# 这样 `docker compose --scale node=N` 时每个副本各得独立身份。
- DCTS_SERVER_URL=http://dcts-server:8090
- DCTS_MAX_SLOTS=4
- DCTS_HEARTBEAT_SEC=15
- DCTS_LOG=info,node=debug
volumes:
- ./assets:/app/assets:ro
- ./data/node_work:/app/data/work
- ./logs/node:/app/logs
# 持久化卷Caddy 证书与配置)
volumes:
caddy_data:
caddy_config: