添加docker 部署agent
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user