CodeBuild 프로비저닝 단계에서 docker pull 제한을 방지합니다.

안녕하세요
주식회사 Diverse에서 일하고 있다 @python_spameggs 입니다
Diverse Advent Calendar 2020 의 첫날이 됩니다
CodeBuild 프로비저닝 단계에서 docker pull 제한으로 인해 오류가 발생하기 때문에 Secrets Manager를 사용하여 해결했습니다.

CodeBuild 프로비저닝 단계의 오류




  • 이렇게 오류가 발생합니다
  • 프로비저닝 단계에서 오류이므로 buildspec에 docker login을 설정해도 의미가 없으므로 다른 방법으로 피하십시오.

    Secrets Manager 사용


  • 비밀 유형은 "기타 비밀"을 선택합니다.

  • 키는 usernamepassword 값은 dockerhub 사용자 이름과 암호입니다.
  • 암호화 키는 사용하고 싶은 것을 선택한다


  • 다음으로 시크릿의 이름과 설명을 넣습니다.

  • 다음으로 시크릿의 자동 회전을 설정합니다.
  • 설정 사용 안함


  • 나중에 검토하고 문제가 없으면 저장하고 만든 비밀을 선택하여 자세한 내용을 봅니다.

  • 시크릿 ARN 복사
  • ↑로 만든 비밀의 이름과 다릅니다. 샘플


  • CodeBuild로


  • 빌드 프로젝트의 빌드 세부 정보에서 환경 항목을 편집합니다.
  • 이미지 덮어쓰기를 선택하면 ↓의 항목이 나오므로 방금 복사한 시크릿의 ARN을 붙여넣습니다
  • 남은 빈 항목은 지금까지 대로의 것을 넣어 환경의 갱신을 해 주세요


  • 이제 완료되었으므로 다시 빌드하여 오류가 발생하지 않는지 확인하십시오.

    aws-cli로 업데이트



    Secrets Manager에 등록



    secret.json
    {
        "username": "dockerhubのユーザ名",
        "password": "dockerhubのパスワード"
    }
    
    aws secretsmanager create-secret --name dockerhub --secret-string file://secret.json
    

    CodeBuild 업데이트하기


  • 현재 설정 얻기
  • aws codebuild batch-get-projects --names プロジェクト名 > project-info.json
    
  • project-info.json에 Secrets Manager ARN 추가
  •   "registryCredential": {
        "credential": "作成したSecrets ManagerのARNを入れる",
        "credentialProvider": "SECRETS_MANAGER"
      }
    
  • 프로젝트 업데이트
  • aws codebuild update-project --cli-input-json file://project-info.json
    
  • 이것으로 완료되었습니다



  • 이제 CodeBuild를 사용할 때마다 docker pull 제한으로 오류가 발생하는 것을 피할 수있었습니다.

    내일의 2일째는 @ 마사시 스토씨가 됩니다!

    좋은 웹페이지 즐겨찾기