services: ws-flux-dev: build: context: ../../ dockerfile: instances/flux/Dockerfile image: ws-flux-dev:latest container_name: ws-flux-dev hostname: ws-flux-dev restart: unless-stopped ports: - "2201:22" - "7701:7681" volumes: # ===== 项目源码 ===== - E:/wk-flux:/workspace # ===== 开发工具 (JDK/Maven) ===== - D:/Java/jdk-musl-17:/opt/jdk-musl-17:ro - D:/Java/maven-mvnd-3.9.14:/opt/maven-mvnd-3.9.14:ro # ===== 代理工具 (Linux static binaries) ===== - E:/wk-oth/rust-work/dist-Linux/mysql-proxy:/usr/local/bin/mysql-proxy:ro - E:/wk-oth/rust-work/dist-Linux/ssh-proxy:/usr/local/bin/ssh-proxy:ro - E:/wk-oth/rust-work/dist-Linux/redis-proxy:/usr/local/bin/redis-proxy:ro - E:/wk-oth/rust-work/dist-Linux/mongo-proxy:/usr/local/bin/mongo-proxy:ro # ===== SSH 密钥 + 代理配置 (仅 Flux 相关) ===== - C:/Users/23780/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro - ../../dev-envs/flux/ssh-proxy.toml:/root/.dev-env/ssh-proxy.toml:ro - ../../dev-envs/flux/mysql-proxy.toml:/root/.dev-env/mysql-proxy.toml:ro - ../../dev-envs/flux/redis-proxy.toml:/root/.dev-env/redis-proxy.toml:ro # ===== 项目级配置 (dev-envs) ===== - ../../dev-envs/flux/servers.yaml:/root/.dev-env/servers.yaml:ro - ../../dev-envs/flux/databases.yaml:/root/.dev-env/databases.yaml:ro - ../../dev-envs/flux/norms.md:/root/.dev-env/norms.md:ro - ../../dev-envs/flux/docs:/root/.dev-env/docs:ro - ../../dev-envs/flux/claude/CLAUDE.md:/root/.dev-env/claude/CLAUDE.md:ro - ../../dev-envs/flux/claude/settings.local.json:/root/.dev-env/claude/settings.local.json:ro # ===== 持久化 Home ===== - ../../data/home/flux-dev:/root environment: - TZ=Asia/Shanghai - TERM=xterm-256color - ROOT_PASSWORD=${ROOT_PASSWORD:-workpod123} - TTYD_CREDENTIALS=${TTYD_CREDENTIALS:-jc:1234567} - WORKPOD_PROJECT=flux - JAVA_HOME=/opt/jdk-musl-17 - MAVEN_HOME=/opt/maven-mvnd-3.9.14 # === Claude Code (智谱 AI) === - ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic - ANTHROPIC_API_KEY=${ANTHROPIC_AUTH_TOKEN} - ANTHROPIC_DEFAULT_SONNET_MODEL=glm-5v-turbo - ANTHROPIC_DEFAULT_OPUS_MODEL=glm-5.1 - ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-4.5-air deploy: resources: limits: memory: 4G reservations: memory: 1G logging: driver: json-file options: max-size: "10m" max-file: "3" healthcheck: test: ["CMD-SHELL", "netstat -tlnp 2>/dev/null | grep -qE ':(22|7681)\\b' || exit 1"] interval: 30s timeout: 5s start_period: 15s retries: 3 working_dir: /workspace tty: true stdin_open: true networks: default: external: true name: workpod-flux-network