我在 Azure DevOps 中使用 Classic 发布管道 并配置简单的 SSH 任务调用 docker-compose:
cd /home/asem/platform/$(ServiceName) && sudo docker-compose up -d --force-recreate
问题:任务失败并出现错误:
Docker-compose 返回 0 退出代码,但在 STDERR 中写入一些消息。管道任务将它们视为错误并失败。
问题:
解决方法 1:管道 docker 将 STDERR 组合成 STDOUT,如
cd /home/asem/platform/$(ServiceName) && sudo docker-compose up -d --force-recreate 2 >&1
sudo docker-compose up -d --force-recreate 2 >&1
这行得通,但我不喜欢它,因为它可以隐藏一些真正的错误
解决方法 2:取消选中任务的“Fail on STDERR”
可行,但发布阶段会显示错误,但这并不好。
stderr 重定向 + grep 对你有用吗?
docker compose up -d 2> >(grep -i error)
快乐之路:
有错误: