[英]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.