将远程部署脚本切换为单引号 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\""
|
||||
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
|
||||
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 up -d app
|
||||
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
|
||||
for i in \$(seq 1 30); do
|
||||
if curl -fsS "\${HEALTH_URL}" >/dev/null; then
|
||||
for i in $(seq 1 30); do
|
||||
if curl -fsS "${HEALTH_URL}" >/dev/null; then
|
||||
HEALTH_OK=1
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
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
|
||||
echo "Health check failed: \${HEALTH_URL}"
|
||||
echo "Health check failed: ${HEALTH_URL}"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user