AWS buildspec.xml 작성시 유의사항

유종훈·2022년 8월 30일
0

AWS의 code pipeline을 이용해 CI/CD를 구성할 때 작성하는 buildspec.xml 입니다.

nodejs 를 이용한 서버 배포 기준입니다. 다른 스펙도 크게 다르지 않을 것 같습니다.

version: 0.2

phases:
  pre_build:
    commands:
      - echo Logging in to Amazon ECR...
      - aws --version
      - aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" --profile default
      - aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" --profile default
      - aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin {$AWS_ECR_URI}
      - REPOSITORY_URI={$AWS_ECR_URI}/{$ECR_REPOSITORY_NAME}
      - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
      - IMAGE_TAG=${COMMIT_HASH:=latest}
  build:
    commands:
      - echo Build started on `date`
      - echo Building the Docker image...
      - docker build -t $REPOSITORY_URI:latest --build-arg NODE=production .
      - docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
  post_build:
    commands:
      - echo Build completed on `date`
      - echo Pushing the Docker images...
      - docker push $REPOSITORY_URI:latest
      - docker push $REPOSITORY_URI:$IMAGE_TAG
      - echo Writing image definitions file...
      - printf '[{"name":"web","imageUri":"%s"}]' $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json ## 여기에서 name 이 클러스터 작업정의에 나오는 컨테이너의 이름과 같아야 합니다.
      - cat imagedefinitions.json

artifacts:
  files: imagedefinitions.json
profile
뼈속까지 개발자

0개의 댓글