簡體   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