본문 바로가기

DevOps/도커(Docker)

깃허브 액션으로 도커 이미지 build, push 해보기

 

1. github repo 생성

 

2. docker 파일 작성

FROM python:3.9-alpine			
WORKDIR /root
ADD hello.py .				
CMD ["python3", "hello.py"]

 

 

3. 파이썬 스크립트 작성(hello.py)

#!/usr/bin/python3
print("Hello world~!~!~!")

 

 

4. github action yaml 파일 작성

name: Docker Image CI

on:
  push:
    branches: [ main ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1
      
    - name: Get the date
      id: date
      run: echo "::set-output name=date::$(date +'%Y%m%d-%H%M')"
      shell: bash

    - name: Login to DockerHub
      uses: docker/login-action@v1 
      with:
        username: ${{ secrets.DOCKER_HUB_USERNAME }}
        password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}

    - name: Build and push
      id: docker_build
      uses: docker/build-push-action@v2
      with:
        context: .
        push: true
        tags: daaa0555/action_test:${{ steps.date.outputs.date }}

 

  1. main 브랜치에 push 이벤트가 발생할 때마다 실행됩니다.
  2. 가장 최신의 Ubuntu 환경에서 실행됩니다.
  3. 저장소 코드를 체크아웃합니다.
  4. Docker Buildx를 설치합니다. (Buildx는 Docker의 CLI 플러그인으로, full build kit 기능을 Docker CLI로 가져옵니다.)
  5. Docker Hub에 로그인합니다. (이 때 사용하는 사용자 이름과 액세스 토큰은 GitHub secrets에 저장해야 합니다.)
  6. 이미지를 빌드하고 Docker Hub에 푸시합니다. 

 

 

5. 시크릿 값 등록

DOCKER_HUB_USERNAMEDOCKER_HUB_ACCESS_TOKEN은 GitHub Secrets에서 설정

dockerhub accesstoken (https://hub.docker.com/settings/security)

 

 

6. 액션 확인 

 

7. docker hub 이미지 확인