GCP CI/CD 파이프라인: 저장소 분기(Google Cloud 소스 저장소)에 커밋한 후 Docker 이미지 빌드

8644 단어 gcpcicddockercloud
이 기사에서는 GCP의 코드 버전 관리 서비스( Cloud Source Repositories )를 Cloud Build에 연결하여 Docker 이미지 빌드를 자동화하고 이를 GCP Container Registry에 푸시하는 방법을 알아봅니다.

클라우드와 컨테이너는 웹 인프라의 배포 및 관리를 진정으로 혁신했습니다. 푸시 또는 풀 요청에 의해 트리거되는 도커 이미지를 빌드하는 기능을 통해 개발자는 인프라가 아닌 코드에 더 집중할 수 있습니다.

이 파이프라인을 설정하는 프로세스는 다음 단계를 따릅니다.
  • Cloud Source Repositories에서 저장소 생성
  • 당사 저장소에 소스 코드 파일 푸시
  • Cloud Build 서비스에서 트리거 생성
  • 지정된 분기에 대한 새 커밋이 있는 경우 Docker 이미지를 빌드하도록 트리거를 설정합니다
  • .


    1. Cloud Source Repositories에 저장소 생성



    사이드바 또는 상단의 검색 표시줄을 사용하여 Cloud Source Repositories로 이동합니다.

    올바른 프로젝트에서 리포지토리를 만들고 있는지 확인한 다음 오른쪽 상단 모서리에 있는 Add repository 버튼을 클릭합니다.



    GCP의 버전 제어를 사용할 것이므로 Create new repository 옵션을 선택하고 Continue를 클릭해야 합니다.



    다음으로 저장소 이름을 입력하고 프로젝트를 선택해야 합니다. 완료한 후 Create 버튼을 클릭합니다.



    마지막 단계에서는 제공된 지침을 사용하여 새로 생성된 리포지토리를 로컬 시스템에 복제합니다.



    SSH(첫 번째 옵션) 또는 gcloud CLI를 사용하여 저장소에 코드를 업로드할 수 있습니다. 독자가 사용할 옵션을 결정하도록 하겠습니다.

    2. 소스 파일



    이 프로젝트에는 2개의 소스 파일이 있습니다.
    Dockerfile :

    FROM python:3.7-slim
    RUN pip install flask
    WORKDIR /myapp
    COPY main.py /myapp/main.py
    CMD ["python", "/myapp/main.py"]
    

    main.py :

    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return 'CI/CD pipeline with GCP Cloud Source Repositories and Docker'
    
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080)
    


    지침에 따라 이러한 파일을 리포지토리로 푸시하고 업로드되었는지 확인합니다.



    3. Cloud Build 트리거 만들기



    Cloud Build를 처음 사용하는 경우 먼저 API를 활성화하라는 메시지가 표시됩니다. 이 API를 활성화하려면 Enable를 클릭하십시오. 1분 정도 소요될 수 있으며 정상입니다.

    사이드바에서 Triggers를 클릭합니다.



    새 트리거를 만들려면 페이지 하단에 있는 Create new trigger 버튼을 클릭하십시오.



    트리거 생성 페이지에서 4가지 중요한 부분에 주의를 기울여야 합니다.
  • 트리거 이름
  • 작업을 트리거할 이벤트(기본값으로 두었습니다Push to a branch )
  • 소스 리포지토리(드롭다운을 클릭하고 리포지토리와 이 트리거가 모니터링할 분기를 선택)
  • 구성 유형(선택Dockerfile )

  • 완료한 후 Create를 클릭하여 트리거 설정을 마칩니다.

    트리거를 테스트하기 위해 먼저 RUN 버튼을 클릭하여 수동으로 호출합니다.



    확인을 요청하는 팝업이 나타납니다. 클릭Run trigger :



    왼쪽 사이드바에서 History 옵션을 클릭하면 빌드 기록을 볼 수 있습니다.



    내 빌드가 성공했습니다.



    4. Dockerimage 자동 빌드 확인



    GCP에는 Container Registry라는 컨테이너 이미지를 저장하는 서비스가 있습니다.

    Contianer Registry로 이동하면 이미지가 표시됩니다.



    그리고 마지막으로 테스트 푸시로 테스트를 해보자. main.py 파일을 수정하고 변경 사항을 저장소에 푸시하겠습니다. 텍스트를 약간 수정하고 추가했습니다v2.0.

    from flask import Flask
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return 'CI/CD pipeline with GCP Cloud Source Repositories and Docker v2.0'
    
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080)
    


    저장소에 새 변경 사항을 커밋하고 푸시합니다. 트리거를 자동으로 실행해야 합니다. 기록 탭에서 실행 중인 프로세스를 볼 수 있습니다(내 작업이 정말 빠르게 완료됨).



    컨테이너 레지스트리로 이동하여 새 이미지가 있는지 확인합니다.


    두 개의 이미지가 있습니다. 하나는 트리거를 수동으로 실행하는 것이고 두 번째는 코드를 추적된 분기로 푸시하는 것입니다.
    그리고 네, 보시다시피 새 이미지가 있습니다!



    그게 다야. 새 코드가 추적된 분기에 커밋될 때 Docker 이미지를 빌드하는 CI/CD 파이프라인을 만들었습니다!

    좋은 웹페이지 즐겨찾기