如何获取Docker容器状态并在容器未运行时终止Azure Pipeline
Azure Pipeline 添加Docker容器运行状态检查逻辑
在现有构建部署流水线的部署步骤之后,添加以下Bash脚本任务,实现容器状态检查并在容器未运行时终止流水线:
- task: Bash@3 displayName: 检查Docker容器运行状态 inputs: targetType: 'inline' script: | # 获取名称匹配$(module)的运行中容器ID running_containers=$(sudo docker container ls --filter "name=$(module)" --filter "status=running" --quiet) # 判断是否存在运行中的目标容器 if [ -z "$running_containers" ]; then echo "❌ 错误:名称包含$(module)的容器未处于运行状态" exit 1 else echo "✅ 成功:名称包含$(module)的容器正在运行" fi
关键说明
--quiet参数仅返回容器ID,简化输出内容,便于脚本判断exit 1会让当前Bash任务标记为失败,触发Azure Pipeline终止后续流程并将整个流水线标记为失败- 需确保执行该任务的代理节点具备以下权限:
- 有权限执行
docker命令(可将代理用户加入docker组避免使用sudo) - 若必须使用
sudo,需配置代理用户免密执行sudo docker操作
- 有权限执行
内容的提问来源于stack exchange,提问作者Julie
相关产品推荐
相关产品推荐

