修复:自动检测 Docker Compose 版本并兼容 V1/V2
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 5s
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Failing after 5s
- 添加 docker compose 版本检测和调试信息 - 自动适配 docker-compose (V1) 或 docker compose (V2) - 使用变量 $COMPOSE 统一调用,避免硬编码 - 解决 Runner 环境中 compose 命令识别问题
This commit is contained in:
@@ -68,11 +68,28 @@ jobs:
|
|||||||
|
|
||||||
cd ${{ env.DEPLOY_DIR }}
|
cd ${{ env.DEPLOY_DIR }}
|
||||||
|
|
||||||
|
# 检查 docker compose 版本
|
||||||
|
echo "检查 Docker Compose..."
|
||||||
|
docker --version
|
||||||
|
docker compose version || echo "docker compose 不可用"
|
||||||
|
|
||||||
|
# 设置 COMPOSE 命令(兼容 V1 和 V2)
|
||||||
|
if command -v docker-compose &> /dev/null; then
|
||||||
|
COMPOSE="docker-compose"
|
||||||
|
echo "使用 docker-compose (V1)"
|
||||||
|
elif docker compose version &> /dev/null; then
|
||||||
|
COMPOSE="docker compose"
|
||||||
|
echo "使用 docker compose (V2)"
|
||||||
|
else
|
||||||
|
echo "错误: 未找到 docker-compose 或 docker compose"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "拉取最新镜像..."
|
echo "拉取最新镜像..."
|
||||||
docker compose -f docker-compose.prod.yml pull
|
$COMPOSE -f docker-compose.prod.yml pull
|
||||||
|
|
||||||
echo "执行滚动更新..."
|
echo "执行滚动更新..."
|
||||||
docker compose -f docker-compose.prod.yml up -d --no-deps
|
$COMPOSE -f docker-compose.prod.yml up -d --no-deps
|
||||||
|
|
||||||
echo "等待服务健康检查..."
|
echo "等待服务健康检查..."
|
||||||
sleep 10
|
sleep 10
|
||||||
@@ -85,7 +102,7 @@ jobs:
|
|||||||
docker image prune -f
|
docker image prune -f
|
||||||
|
|
||||||
echo "部署完成!"
|
echo "部署完成!"
|
||||||
docker compose -f docker-compose.prod.yml ps
|
$COMPOSE -f docker-compose.prod.yml ps
|
||||||
|
|
||||||
- name: 构建结果通知
|
- name: 构建结果通知
|
||||||
if: always()
|
if: always()
|
||||||
|
|||||||
Reference in New Issue
Block a user