繁体   English   中英

为什么 AWS Copilot Task Run 总是在没有 --follow 选项的情况下返回退出代码 0?

[英]Why does AWS Copilot Task Run always return exit code 0 without --follow option?

我有一个 Docker 图像设置来运行我通过 copilot copilot task run run 运行的简单脚本。

FROM node:12-alpine
RUN apk update
RUN apk add curl
RUN apk add jq
RUN apk add --no-cache aws-cli
COPY deploy-permissions.sh /usr/local/bin/deploy-permissions.sh
RUN chmod +x /usr/local/bin/deploy-permissions.sh
ENTRYPOINT ["/usr/local/bin/deploy-permissions.sh"]

当我通过使用--follow标志运行的copilot task run它时,它会向我显示所有日志 output 并正确返回退出代码。

所以如果我运行一个我知道它会失败的场景,我会得到

copilot task run --image %URLTOImage% --follow
echo $? (reports 1 correctly)

但是,如果我不传入--follow命令似乎完成得更快并且退出状态代码为 0,无论 docker 容器的入口点脚本是否成功。

copilot task run --image %URLToImage%
echo $? (always reports 0)

文档说--follow应该只是 stream 日志,没有什么不等待完成。

我在这里错过了什么吗? 为什么会这样? 这给我带来了问题,因为我们的 CI/CD 管道不喜欢--follow选项。 如果我可以在没有它的情况下运行该任务,那将减轻我的痛苦; 但是,我需要命令等待任务完成并正确报告错误代码。 管道目前总是报告成功,这是不可能的。 如果我确实使用--follow Codebuild 项目说它任务永远不会达到就绪状态。

谢谢!

抱歉耽搁了。

使用--follow标志时返回的退出代码是任务的退出代码。 我相信如果没有--follow标志,退出代码就是总体过程的退出代码。

请参阅此处的请求: https://github.com/aws/copilot-cli/issues/2525和此处的实施: https://github.com/aws/copilot-cli/pull/3620 问题讨论中有一些有趣的想法可以帮助您在 CI/CD 管道中使用该命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM