SW/DevOps

DevOps : Docker 이미지를 푸시하는 Github Action

얇은생각 2020. 8. 11. 20:00
반응형

DevOps : Docker 이미지를 푸시하는 Github Action

 

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

 

이는 actions/checkout@v2 작업을 사용하여 먼저 마스터로 푸시 된 현재 저장소를 체크 아웃하는 방식으로 작동합니다. 다음 단계에서는 docker build 및 push action docke/build-push-action@v1을 사용합니다. 도커 허브 사용자 이름, 비밀번호, 리포지토리 및 태그의 4 가지 매개 변수가 필요합니다.

위의 코드에서 username과 password에 secrets 매개 변수를 사용하고 있음을 알 수 있습니다.

 

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

 

Github에서 저장소에 Secrets을 추가하려면 Settings -> Secrets을 선택한 다음 사용자 이름과 비밀번호에 대한 새 Secrets을 작성하십시오.

이미지를 빌드하기 위해 저장소에 프로젝트 루트에 Dockerfile이 있는지 확인합니다.

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

반응형