|
|
@@ -85,32 +85,41 @@ pipeline {
|
|
|
# 创建日志目录
|
|
|
mkdir -p ${LOG_ROOT}/store ${LOG_ROOT}/gateway ${LOG_ROOT}/contract
|
|
|
|
|
|
+ # 把当前 workspace 的 .env.uat 复制到宿主机持久目录,供容器挂载使用
|
|
|
+ mkdir -p /docker/python-uat
|
|
|
+ cp .env.uat /docker/python-uat/.env.uat
|
|
|
+
|
|
|
# 停止旧容器(不会误删 java 的 gateway-uat / store-uat / 真正的 esign-uat 等)
|
|
|
docker rm -f ${CONTAINER_NAME_STORE} ${CONTAINER_NAME_GATEWAY} ${CONTAINER_NAME_CONTRACT} 2>/dev/null || true
|
|
|
|
|
|
# 1) 先启动下游:store
|
|
|
- # 只走 docker 内部网络,不向宿主机暴露端口(避免与 java gateway-uat 抢 8001)
|
|
|
docker run -d --name ${CONTAINER_NAME_STORE} \\
|
|
|
--network ${DOCKER_NET} \\
|
|
|
+ -e APP_ENV=uat \\
|
|
|
+ -v /docker/python-uat/.env.uat:/app/.env.uat:ro \\
|
|
|
-v ${LOG_ROOT}/store:/app/common/logs/alien_store \\
|
|
|
--restart unless-stopped \\
|
|
|
${IMAGE_STORE}
|
|
|
|
|
|
# 2) 再启动下游:contract
|
|
|
- # 只走 docker 内部网络,不向宿主机暴露端口
|
|
|
docker run -d --name ${CONTAINER_NAME_CONTRACT} \\
|
|
|
--network ${DOCKER_NET} \\
|
|
|
+ -e APP_ENV=uat \\
|
|
|
+ -v /docker/python-uat/.env.uat:/app/.env.uat:ro \\
|
|
|
-v ${LOG_ROOT}/contract:/app/common/logs/alien_contract \\
|
|
|
--restart unless-stopped \\
|
|
|
${IMAGE_CONTRACT}
|
|
|
|
|
|
# 3) 最后启动网关:gateway(依赖上面两个下游;唯一对外暴露的入口)
|
|
|
+ # STORE_BASE_URL / CONTRACT_BASE_URL 通过 -e 覆盖 .env.uat 中的本地默认值
|
|
|
docker run -d --name ${CONTAINER_NAME_GATEWAY} \\
|
|
|
--network ${DOCKER_NET} \\
|
|
|
-p ${PORT_GATEWAY}:${PORT_GATEWAY} \\
|
|
|
- -v ${LOG_ROOT}/gateway:/app/common/logs/alien_gateway \\
|
|
|
+ -e APP_ENV=uat \\
|
|
|
-e STORE_BASE_URL=http://${CONTAINER_NAME_STORE}:${PORT_STORE} \\
|
|
|
-e CONTRACT_BASE_URL=http://${CONTAINER_NAME_CONTRACT}:${PORT_CONTRACT} \\
|
|
|
+ -v /docker/python-uat/.env.uat:/app/.env.uat:ro \\
|
|
|
+ -v ${LOG_ROOT}/gateway:/app/common/logs/alien_gateway \\
|
|
|
--restart unless-stopped \\
|
|
|
${IMAGE_GATEWAY}
|
|
|
"""
|