如何解决kaniko executor - 构建 2 个没有多阶段的容器
我正在尝试在同一阶段构建 2 个容器。这背后的原因是它们上的一切都是相同的,但其中一个会有不同的用法。我认为没有理由进行多阶段构建,因为一切都已经就绪,创建新阶段会再次从缓存中下载构建器的映像。
我的脚本看起来像这样。
script:
- chmod a+x k8s/check-if-needed-to-run-composer.sh
- k8s/check-if-needed-to-run-composer.sh
- echo "{\"credsstore\":\"ecr-login\",\"credHelpers\":{\"$AWS_ACCOUNT_ID.dkr.ecr.region.amazonaws.com\":\"ecr-login\"}}" > /kaniko/.docker/config.json
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/k8s/job-manager/Dockerfile --build-arg DECRYPTION_SECRET="$DECRYPTION_SECRET" --destination $AWS_REPOSITORY_JOB_MANAGER:$CI_COMMIT_REF_SLUG --verbosity=panic
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/k8s/command-image/Dockerfile --build-arg DECRYPTION_SECRET="$DECRYPTION_SECRET" --destination $AWS_REPOSITORY_COMMAND_IMAGE:$CI_COMMIT_REF_SLUG --verbosity=panic
问题是第一个执行程序有效,而第二个执行程序抛出:
/bin/bash: line 158: /usr/local/bin/executor: No such file or directory
经过进一步调查,似乎在执行程序结束时脚本仍保留在容器内(并且没有执行程序 - 它不应该)。我尝试使用 exit (下面的脚本),但这只会停止执行。也许我应该尝试模拟 ctrl + p?
script:
- chmod a+x k8s/check-if-needed-to-run-composer.sh
- k8s/check-if-needed-to-run-composer.sh
- echo "{\"credsstore\":\"ecr-login\",\"credHelpers\":{\"$AWS_ACCOUNT_ID.dkr.ecr.region.amazonaws.com\":\"ecr-login\"}}" > /kaniko/.docker/config.json
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/k8s/job-manager/Dockerfile --build-arg DECRYPTION_SECRET="$DECRYPTION_SECRET" --destination $AWS_REPOSITORY_JOB_MANAGER:$CI_COMMIT_REF_SLUG --verbosity=panic
- exit
- executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/k8s/command-image/Dockerfile --build-arg DECRYPTION_SECRET="$DECRYPTION_SECRET" --destination $AWS_REPOSITORY_COMMAND_IMAGE:$CI_COMMIT_REF_SLUG --verbosity=panic
无论如何……有没有办法在同一阶段一个接一个地运行 2 个执行程序?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。