# yunyan-sas 多环境部署 compose(变量驱动) # # 不直接用 docker compose 调用,统一通过 deploy.sh: # ./deploy.sh local up # 本机 # ./deploy.sh dev deploy # 部署到开发服务器 # ./deploy.sh prod deploy # 部署到生产服务器 # # deploy.sh 会把 env/<环境>.env 落为同目录 .env,compose 同时用它做 # ① 变量替换:REGISTRY / TAG / PLATFORM / DOCKER_NETWORK / ADMIN_PORT # ② 容器环境注入:env_file 指向同一个 .env(POSTGRES_DSN / REDIS_* / NATS_URL / CONSOLE_* 等) services: # ── console 后台控制面服务 ────────────────────────────────── yunyan-console: image: ${REGISTRY:-docker-registry.ideapsound.com}/yunyan-console:${TAG:-latest} container_name: yunyan-console restart: unless-stopped platform: ${PLATFORM:-linux/amd64} networks: - appnet # deploy 目录下 console/ 挂为 /app(WORKDIR),含 confs/ log/ volumes: - ./console:/app env_file: - .env environment: TZ: Asia/Shanghai expose: - "8080" # ── admin 管理前端 ───────────────────────────────────────── yunyan-admin: image: ${REGISTRY:-docker-registry.ideapsound.com}/yunyan-admin:${TAG:-latest} container_name: yunyan-admin restart: unless-stopped platform: ${PLATFORM:-linux/amd64} networks: - appnet environment: TZ: Asia/Shanghai # server middleware 运行时代理目标(同网络容器名直接解析) CONSOLE_BACKEND: http://yunyan-console:8080 ports: - "${ADMIN_PORT:-3000}:3000" depends_on: - yunyan-console # 外部网络:各环境用各自的网络名(local 用 1panel-network;dev/prod 在 .env 里配 DOCKER_NETWORK)。 # 该网络需在目标机预先存在(docker network create ),且 redis/nats 可达 # (同网络容器名,或在 .env 里用 REDIS_ADDR/NATS_URL 填外部地址)。 networks: appnet: name: ${DOCKER_NETWORK:-1panel-network} external: true