From 906ac686a2271b11e1eedf3e255a38fb0ff8e872 Mon Sep 17 00:00:00 2001 From: empty Date: Sat, 27 Dec 2025 17:04:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E4=B8=93=E7=94=A8=20docker-compose.prod.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用预构建镜像 image: droid2api:latest - 适用于离线部署场景 - 本地开发保留 build: . --- docker-compose.prod.yml | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docker-compose.prod.yml diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..2d87da1 --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,61 @@ +# 生产环境 Docker Compose 配置 +# 使用预构建镜像,适用于离线部署 +# +# 部署步骤: +# 1. docker network create api-network (首次) +# 2. gunzip -c droid2api.tar.gz | docker load +# 3. docker compose -f docker-compose.prod.yml up -d + +services: + droid2api: + image: droid2api:latest # 使用预构建镜像(非 build) + container_name: droid2api + ports: + - "3001:3000" + environment: + # 认证配置(按优先级选择其一): + - FACTORY_API_KEY=${FACTORY_API_KEY} + - DROID_REFRESH_KEY=${DROID_REFRESH_KEY} + # 阿里云日志服务配置 + - ALIYUN_ACCESS_KEY_ID=${ALIYUN_ACCESS_KEY_ID} + - ALIYUN_ACCESS_KEY_SECRET=${ALIYUN_ACCESS_KEY_SECRET} + - ALIYUN_SLS_ENDPOINT=${ALIYUN_SLS_ENDPOINT} + - ALIYUN_SLS_PROJECT=${ALIYUN_SLS_PROJECT} + - ALIYUN_SLS_LOGSTORE=${ALIYUN_SLS_LOGSTORE} + # API 认证中间件(new-api 接入时启用) + - AUTH_ENABLED=${AUTH_ENABLED:-false} + - API_KEYS=${API_KEYS} + volumes: + - ./data:/app/data + - ./accounts.json:/app/accounts.json:ro + restart: unless-stopped + healthcheck: + test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + networks: + - api-network + + # Cloudflare Tunnel (可选) + # 启用方式: docker compose -f docker-compose.prod.yml --profile tunnel up -d + tunnel: + image: cloudflare/cloudflared:latest + container_name: droid2api_tunnel + restart: unless-stopped + command: tunnel run + environment: + - TUNNEL_TOKEN=${TUNNEL_TOKEN} + depends_on: + - droid2api + profiles: + - tunnel + networks: + - api-network + +# 共享网络 - 与 new-api 等服务互通 +# 首次使用: docker network create api-network +networks: + api-network: + external: true