Copilot Codepipeline 빌드 단계 문제 해결

2613 단어
파이프라인 빌드 단계 실패(Copilot Platform linux/arm64 사용)

해당하는 것은 Copilot Platform이 linux/arm64이고, manifest.yml + buildspec.yml 파일을 수정하지 않는 경우 발생합니다.

Copilot pipelien init를 통해 생성된 manifest.yml + buildspeec.yml 파일의 빌드 이미지는 arm64 기반의 이미지가 아니라 일반 Linux 기반의 이미지이기 때문에 arm64 이미지로 요구해야 합니다.

시간이 지나면 이르면 관련 리소스 업로드가 발생합니다.

✘ upload resources required for deployment for copilot: build and push image: build Dockerfile at /codebuild/output/path/Dockerfile: building image: exit status 1
Cloudformation stack and config files were not generated. Please check build logs to see if there was a manifest validation error.


해결된 방법은 위에서 말했던 거처럼 manifest.yml과 buildspec.yml의 빌드 이미지를 arm64로 페이지에 올려 놓으셨습니다.

먼저 manifest.yml 파일에 (소스와 단계 사이에)

build:
  image: aws/codebuild/amazonlinux2-aarch64-standard:2.0


코드를 추가해 이미지 생성을 설정합니다.

buildspec.yml 파일에 기존 작업과 같이 작성되어 있는 부분이 변경됩니다. 이렇게 작성 후 새로 빌드를 실행하면 빌드가 정상적으로 작동하는 것을 확인할 수 있습니다.

- wget -q https://ecs-cli-v2-release.s3.amazonaws.com/copilot-linux-v1.18.0
- mv ./copilot-linux-v1.18.0 ./copilot-linux



- wget -q https://ecs-cli-v2-release.s3.amazonaws.com/copilot-linux-arm64-v1.18.0
- mv ./copilot-linux-arm64-v1.18.0 ./copilot-linux




참고. github issue , github pr

번외

[Container] 2022/05/16 02:38:00 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: for env in $pl_envs; do
  tag=$(sed 's/:/-/g' <<<"${CODEBUILD_BUILD_ID##*:}-${env}" | rev | cut -c 1-128 | rev)
  for svc in $svcs; do
  ./copilot-linux svc package -n $svc -e $env --output-dir './infrastructure' --tag $tag --upload-assets;
  if [ $? -ne 0 ]; then
    echo "Cloudformation stack and config files were not generated. Please check build logs to see if there was a manifest validation error." 1>&2;
    exit 1;


로그를 보면 이런 질문이 붉은색으로 떠들썩한 전기 신호를 보고 어떤 것이 유인지인지 추나 이 부분을 볼 수 있다는 점에서... ^T

좋은 웹페이지 즐겨찾기