일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kotin
- Pods Evicted
- macm1
- GPU
- 얼굴검출
- 삶이란...
- k8s고장나면
- kubernetes
- kubectl #
- 얼굴분류
- face verification
- nvidia-container-cli
- k8s-device-plugin
- #Kuberspawner
- kubectl completion bash
- kubernetes자동완성
- mac m1
- Kubernets 이론
- Kotlin
- nvidia-driver-plugin
- worker node
- 코틀린
- nvidia-docker
- k8s
- k8s-driver-plugin
- #kubernetes
- RunContainerError
- ₩
- 넘무무서웡...
- BigSur
- Today
- Total
더듬이
[Docker 자동 tag 만들기 ] 2. git action을 통해 Docker 자동 build push autoTag 하기 본문
[Docker 자동 tag 만들기 ] 2. git action을 통해 Docker 자동 build push autoTag 하기
dbhang 2022. 6. 6. 20:37가끔 회사에서 Dockerfile을 git으로 관리하다 보면 문제가 생기는 경우가 존재한다.
1. git commit push는 해놨지만 docker push는 안하고 배포한 경우(재앙이다 진짜...)
2. github code랑 docker image 가 매칭 안되는 경우 => 오롯이 개발자 기억에 의지하는 경우 (뇌정지 온다 진짜...)
젠킨스를 통해 빌드 푸쉬하면 job기록이 남고 어떤 commit들이 현재 이미지에 반영/배포되었는지 알수 있기에 이런 이슈는 없겠지만!
부득이하게 젠킨스를 쓸 수없는 경우에는 간단히 gitaction으로 수정 가능하다.
1. Docker token 발급 받고 github에 등록하기
https://my-grope-log.tistory.com/45
위 게시글을 참고하자.
일단 docker를 build/push 하는 github action 예제 를 살펴보자.
일단 예제를 따라하기 위해 아래와 같은 procject 구조를 만든다.
그리고 Dockerfile안에 간단한 내용을 적는다.
FROM nginx
RUN echo "tag TEST" > /root/test.txt
그리고 이제 docker action을 설정한다. DockerAutotag.yml 파일 안에 아래와 같은 예시를 적는다.
name: Build and Tag and Push Docker Image
on:
push:
branches:
- develop
일단 github action을 name 필드에 적어주고
on 필드는 action이 실행될 조건을 적는다.
나는 push 동작이 develop 브런치에 걸리는 순간에 해당 action이 실행되기를 설정했다.
jobs:
build-and-push-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_ID }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: hsd3030/dockerautotag:${{ github.sha }}
그리고 jobs에 도커 실행 엑션을 적어준다 .
job명을 먼저 적어주고
그 하위로 runs-on 필드는 job이 진행될 환경이다.
그리고 그 하위로 job에서 진행할 작업을 steps 필드에 정의한다.
특히 login to dockerhub 스텝에서는 git저장소에 저장한 도커허브 환경 변수를 잘 적는다.
그리고 build and push 시에 tag를 github 자체 환경 변수를 이용하면 끝이다.
생각 보다 내용이 간단해서 다행이였다.
그치만 github action을 완벽히 익힌건 아니라서 다음에 다른 job을 생성해보며 익혀야겠다.
위내용의 코드들은 아래프로젝트에 정리되어있다.
https://github.com/inyeongpark/DockerAutoTag
'Docker' 카테고리의 다른 글
[Docker] docker 로 mysql 사용하기 (mac m1에서 docker 사용하기) (2) | 2021.08.09 |
---|