ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • You have reached your pull request limit Docker
    AWS 2022. 2. 27. 12:16
    728x90

    현재 AWS 의 ECS 를 이용해 서비스를 제공 중이다.

    AWS 의 codedeploy를 사용해 CI/CD를 구성하였는데 로그를 보니 다음과 같은 에러 발견

     

    [Container] 2022/02/16 08:00:26 Running command docker build -t server .
    977	Sending build context to Docker daemon  236.7MB
    978	
    979	Step 1/4 : FROM openjdk:8-jre-alpine
    980	8-jre-alpine: Pulling from library/openjdk
    981	toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
    982	
    983	[Container] 2022/02/16 08:00:31 Command did not exit successfully docker build -t acaas_dev_auth . exit status 1
    984	[Container] 2022/02/16 08:00:31 Phase complete: BUILD State: FAILED
    985	[Container] 2022/02/16 08:00:31 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: docker build -t server .. Reason: exit status 1
    986	[Container] 2022/02/16 08:00:31 Entering phase POST_BUILD
    987	[Container] 2022/02/16 08:00:31 Running command docker tag server:latest 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/acaas_dev_auth:latest
    988	Error response from daemon: No such image: server:latest
    989	
    990	[Container] 2022/02/16 08:00:31 Command did not exit successfully docker tag server:latest 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/server:latest exit status 1
    991	[Container] 2022/02/16 08:00:31 Phase complete: POST_BUILD State: FAILED
    992	[Container] 2022/02/16 08:00:31 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: docker tag server:latest 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/server:latest. Reason: exit status 1
    993	[Container] 2022/02/16 08:00:31 Expanding base directory path: .
    994	[Container] 2022/02/16 08:00:31 Assembling file list
    995	[Container] 2022/02/16 08:00:31 Expanding .
    996	[Container] 2022/02/16 08:00:31 Expanding file paths for base directory .
    997	[Container] 2022/02/16 08:00:31 Assembling file list
    998	[Container] 2022/02/16 08:00:31 Expanding **/*
    999	[Container] 2022/02/16 08:00:31 Found 288 file(s)
    1000	[Container] 2022/02/16 08:00:37 Phase complete: UPLOAD_ARTIFACTS State: SUCCEEDED
    1001	[Container] 2022/02/16 08:00:37 Phase context status code:  Message:

     

    에러 내용을 보면 spring boot 웹서버 빌드를 위해 openjdk:8-jre-alpine 를 받아오는데 하루 pull request 허용량을 초과했다는 내용

    도커 결제를 통해 해당 내용을 수정하기 보다 ECR에 openjdk 이미지를 올려 docker hub에서 이미지를 당겨오지 않고 ECR에서 당겨오도록 문제를 수정하기로 하였음

     

    해당 내용을 처리 하지 않을 경우 프로덕션 환경에서 서버 배포가 실패 할 수 있기 때문에 수정해야 한다.

     

    # ecr에 먼저 로그인해야한다. ecr aws 푸시 명령을 클릭하면 상세 가이드가 나옴
    aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin 12341234.dkr.ecr.ap-northeast-2.amazonaws.com
    
    # jre alpine 이미지 도커 허브에서 받아온다.
    docker pull openjdk:8-jre-alpine
    
    # 태그 걸어주고
    docker tag openjdk:8-jre-alpine 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/openjdk:latest
    
    # ecr에 올린다. ecr에 올리려면 먼저 해당 ec2가 ecr 권한이 있어야 한다. 이 권한은 IAM 에서 주도록 한다
    # 아니면 APIKey등을 발급해서 로그인해야 한다. 나의 경우 ecs(aws ec2)에서 IAM 권한을 주는 방식으로 해결
    
    # 도커 이미지 올린다.
    docker push 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/openjdk:latest

     

    나의 경우 ecs 서비스가 돌아가고 있는 ec2에서  ecr에 위 스크립트로 openjdk를 push 하였다.

     

    또한 spring boot의 dockerfile도 다음과 같이 ecr에서 받아오도록 수정

    # Start with a base image containing Java runtime
    FROM 12341234.dkr.ecr.ap-northeast-2.amazonaws.com/openjdk:latest
    
    # Add Author info
    
    # Make port 8080 available to the world outside this container
    EXPOSE 8080
    
    # The application's jar file
    COPY target/*.jar server.jar
    
    
    # Run the jar file
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/server.jar"]

     

    728x90

    'AWS' 카테고리의 다른 글

    aws ecs s3 access denied  (0) 2022.02.27
    Bastion -> ec2  (0) 2021.01.23
Designed by Tistory.