SW/Git

Git : Docker 이미지를 푸시하는 Github 작업 : 예제, 방법

얇은생각 2020. 7. 11. 07:30
반응형

git : Docker 이미지를 푸시하는 Github 작업 : 예제, 구현

 

이전에 Github 작업을 사용하여 마스터로 병합할 때, 응용 프로그램에 대한 PHPUnit 테스트 방법에 대해 조사해보았습니다. 

테스트가 성공하면 다음 단계는 도커 이미지를 작성하여 리포지토리에 푸시하는 것입니다.

이렇게 하려면 새 워크플로 파일을 생성해야 합니다. 이 파일은 테스트가 성공한 후 실행되어 도커 이미지를 저장소로 푸시해야 합니다.

저 워크플로 폴더 .github/workflows/docker.yml에 새 파일을 만들고 해당 파일에 다음 파일을 붙여넣습니다.

 

name: Docker

on:
  push:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout GitHub Action'
        uses: actions/checkout@v2
      - name: Build and push docker
        uses: docker/build-push-action@v1
        with:
          username: ${{ secrets.REGISTRY_USERNAME }}
          password: ${{ secrets.REGISTRY_PASSWORD }}
          repository: DOCKER_REPOSITORY
          tags: latest

 

이 작업은 먼저 master에 푸시된 상태에서 actions/checkout@v2 액션을 사용하여 현재 리포지토리를 체크아웃하는 방식으로 작동합니다. 

다음 단계에서는 도커 빌드 및 푸시 작업 docker/build-push-action@v1를 사용합니다. 이렇게 하려면 도커 허브 사용자 이름, 암호, 리포지토리 및 태그 4개의 매개 변수가 필요합니다.

위의 코드에서 사용자 이름 및 암호에 암호 매개 변수를 사용하고 있음을 알 수 있습니다.

 

username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

 

Github의 리포지토리에 암호를 추가하려면 Settings -> Secrets를 선택한 다음 사용자 이름과 암호에 대한 새 암호를 만듭니다.

리포지토리에 이미지를 빌드하기 위한 프로젝트 루트에 도커 파일이 있는지 확인합니다.

이제 이 파일을 리포지토리에 커밋하고 마스터에 푸시하면 Github가 도커 허브에 푸시 도커 이미지를 작성합니다.

반응형