将远程部署脚本切换为单引号 heredoc 并显式传入所需环境变量,避免本地 shell 在 set -u 下提前展开导致健康检查变量未定义。 Made-with: Cursor
This commit is contained in:
@@ -55,7 +55,7 @@ jobs:
|
|||||||
ssh -p "${DEPLOY_PORT:-22}" "${DEPLOY_USER}@${DEPLOY_HOST}" "mkdir -p \"${DEPLOY_PATH}/deploy/docker\""
|
ssh -p "${DEPLOY_PORT:-22}" "${DEPLOY_USER}@${DEPLOY_HOST}" "mkdir -p \"${DEPLOY_PATH}/deploy/docker\""
|
||||||
scp -P "${DEPLOY_PORT:-22}" deploy/docker/docker-compose.yml "${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}/deploy/docker/docker-compose.yml"
|
scp -P "${DEPLOY_PORT:-22}" deploy/docker/docker-compose.yml "${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}/deploy/docker/docker-compose.yml"
|
||||||
|
|
||||||
ssh -p "${DEPLOY_PORT:-22}" "${DEPLOY_USER}@${DEPLOY_HOST}" <<EOF
|
ssh -p "${DEPLOY_PORT:-22}" "${DEPLOY_USER}@${DEPLOY_HOST}" "DEPLOY_PATH='${DEPLOY_PATH}' IMAGE_REPO='${IMAGE_REPO}' IMAGE_TAG='${IMAGE_TAG}' REGISTRY='${REGISTRY}' REGISTRY_USERNAME='${REGISTRY_USERNAME}' REGISTRY_PASSWORD='${REGISTRY_PASSWORD}' bash -se" <<'EOF'
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
cd "${DEPLOY_PATH}"
|
cd "${DEPLOY_PATH}"
|
||||||
|
|
||||||
@@ -69,18 +69,18 @@ jobs:
|
|||||||
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env pull app
|
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env pull app
|
||||||
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env up -d app
|
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env up -d app
|
||||||
docker compose -f deploy/docker/docker-compose.yml ps
|
docker compose -f deploy/docker/docker-compose.yml ps
|
||||||
HEALTH_URL="http://127.0.0.1:\${HOST_BIND_PORT:-3000}/api/docs"
|
HEALTH_URL="http://127.0.0.1:${HOST_BIND_PORT:-3000}/api/docs"
|
||||||
HEALTH_OK=0
|
HEALTH_OK=0
|
||||||
for i in \$(seq 1 30); do
|
for i in $(seq 1 30); do
|
||||||
if curl -fsS "\${HEALTH_URL}" >/dev/null; then
|
if curl -fsS "${HEALTH_URL}" >/dev/null; then
|
||||||
HEALTH_OK=1
|
HEALTH_OK=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
if [ "\${HEALTH_OK}" -ne 1 ]; then
|
if [ "${HEALTH_OK}" -ne 1 ]; then
|
||||||
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env logs --tail=200 app || true
|
docker compose -f deploy/docker/docker-compose.yml --env-file deploy/docker/.env logs --tail=200 app || true
|
||||||
echo "Health check failed: \${HEALTH_URL}"
|
echo "Health check failed: ${HEALTH_URL}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
EOF
|
EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user