添加docker 部署agent

This commit is contained in:
2026-04-13 17:06:02 +08:00
parent 797824d01c
commit a7c2448207
2866 changed files with 1149 additions and 272838 deletions

View File

@@ -1,5 +1,3 @@
version: '3.8'
services:
# ========== Nginx 反向代理 + SSL 终端 ==========
# 域名通过 .env 注入nginx 启动时 envsubst 自动替换模板中的变量
@@ -15,18 +13,20 @@ services:
- certbot-webroot:/var/www/certbot:ro
- certbot-certs:/etc/letsencrypt:ro
environment:
# 只替换这 3 个变量,不影响 nginx 内置的 $host $scheme 等
NGINX_ENVSUBST_FILTER: "API_DOMAIN|DLWEB_DOMAIN|WX_DOMAIN"
API_DOMAIN: ${API_DOMAIN}
DLWEB_DOMAIN: ${DLWEB_DOMAIN}
WX_DOMAIN: ${WX_DOMAIN}
# 只替换这 4 个变量,不影响 nginx 内置的 $host $scheme 等
NGINX_ENVSUBST_FILTER: "API_DOMAIN|DLWEB_DOMAIN|WX_DOMAIN|ROOT_DOMAIN"
ROOT_DOMAIN: ${ROOT_DOMAIN}
API_DOMAIN: api.${ROOT_DOMAIN}
DLWEB_DOMAIN: dlapi.${ROOT_DOMAIN}
WX_DOMAIN: wxapi.${ROOT_DOMAIN}
depends_on:
- api
- dlweb
- wxserver
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.2
# ========== Certbot (Let's Encrypt 证书自动续签) ==========
# 每 12 小时检查一次证书是否需要续签
@@ -39,7 +39,8 @@ services:
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew --webroot -w /var/www/certbot --quiet; sleep 12h & wait $${!}; done'"
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.9
# ========== 网站1: API 服务 (游戏核心接口) ==========
# 网站目录: game-docker/api → 容器内 /var/www/html
@@ -52,12 +53,19 @@ services:
- "${API_PORT:-8081}:80"
env_file:
- .env
environment:
# 从 ROOT_DOMAIN 自动推导,覆盖 env_file 中可能未设置的值
API_DOMAIN: api.${ROOT_DOMAIN}
SITE_API_URL: https://api.${ROOT_DOMAIN}
SITE_PAY_NOTIFY_URL: https://api.${ROOT_DOMAIN}
SITE_OPEN_URL: http://open.${ROOT_DOMAIN}
volumes:
- api-logs:/var/www/html/logs
- api-source-logs:/var/www/html/source/logs
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.3
# ========== 网站2: DLWEB 服务 (代理管理后台) ==========
# 网站目录: game-docker/dlweb/api → 容器内 /var/www/html/api (DocumentRoot)
@@ -70,12 +78,18 @@ services:
- "${DLWEB_PORT:-8082}:80"
env_file:
- .env
environment:
# 从 ROOT_DOMAIN 自动推导,覆盖 env_file 中可能未设置的值
API_DOMAIN: api.${ROOT_DOMAIN}
DLWEB_DOMAIN: dlapi.${ROOT_DOMAIN}
DLWEB_DL_API_V3_URL: https://dlapi.${ROOT_DOMAIN}
volumes:
- dlweb-logs:/var/www/html/api/logs
- dlweb-debug:/var/www/html/api/ext/debug
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.4
# ========== 网站3: wxserver 服务 (微信小程序后端) ==========
# 网站目录: game-docker/wxserver_daoqi → 容器内 /app
@@ -92,7 +106,8 @@ services:
- NODE_ENV=production
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.5
# ========== 定时同步任务 (Synchronize.php) ==========
# 每 30 秒通过 Docker 内网 POST 请求 dlweb不走域名/公网流量
@@ -111,7 +126,8 @@ services:
- dlweb
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.6
# ========== 每日定时任务 (替代 Windows autorun.cmd) ==========
# 默认凌晨 4:00 执行报表同步,通过 Docker 内网直连 dlweb
@@ -130,7 +146,8 @@ services:
- dlweb
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.7
# ========== Redis (可选) ==========
redis:
@@ -144,7 +161,8 @@ services:
- redis-data:/data
restart: unless-stopped
networks:
- youle-net
youle-net:
ipv4_address: 172.20.0.8
volumes:
api-logs:
@@ -159,3 +177,6 @@ volumes:
networks:
youle-net:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/24