오늘 글은 짧은 글이 될거다.
파일 하나만 설정해주면 끝이라서.
오늘 하는 내용은 어제 Github에 올라와있는 애플리케이션을 기준으로
Docker 이미지를 만들었는데,
Github 애플리케이션에 소스가 업데이트 되면 자동으로 Docker 이미지에 반영되도록 하는 설정이다.
다시 말하자면 CI 작업이라고 보면 된다.
먼저 필요한 사항은 이전 글에서 작성했던
- DOCKERHUB_USERNAME
- DOCKERHUB_TOKEN
해당 값이 Github에 설정되어 있어야 한다.
다시 한번 확인해보면,

해당 값이 설정되어 있으면 된다.
이제 설정을 해보자.
먼저 docker-publish.yml 이라는 파일을 만들어 줘야 한다.
경로는 자신의 애플리케이션 root 경로에 .gitbug/workflows/docker-publish.yml 이다.

* docker-publish.yml

위와 같이 파일을 만들어주면 된다.
안에 내용은 역시나 사용자에 따라 다 다르기 때문에
어떤식으로 사용하는지 정도만 알아두면 된다.
이제 잘되는지 확인해보자.
소스를 조금 수정한 후에 push 했더니
아래와 같이 자동으로 빌드까지 진행중이다.


잘 된다.
여기서 좀만 더 나아가서
commit했을 때의 태그를 docker의 태그로 만들어서
언제 수정했는지 알 수 있게하여 관리를 편하게 해보자.
docker-publish.yml을 아래처럼 추가해주면 끝.

정상적으로 실행됐는지 확인해보면
sudo docker images | grep jungjinlee90/github_jj |

오잉..없네..?
잘됐으면 latest 말고 하나 더 있어야 하는데 없다.
action쪽에 들어가서 다시 확인해보니

The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
GitHub Actions: Deprecating save-state and set-output commands · GitHub Changelog
GitHub Actions: Deprecating save-state and set-output commands
github.blog
이런 에러가 있어서 찾아봤더니,
'set-output'이 이제 안된단다.

위 처럼 run: echo "SHA_SHORT=$(git rev-parse --short HEAD)" >> $GITHUB_ENV 이걸로 바꾸면 된다해서 바꿔줬다.
다시 테스트 해보자.

또 에러가 뜬다..
확인해보자..
위에 소스를 바꾸면서 sha_short가 사라졌는데, bulid할때 쓰고 있어서 그랬다.
태그 값 빼오고 빌드하고 push하도록 순서를 바꿔야 하는데,
깜빡했다..
최종적으로는 아래와 같이 수정됐다.

이렇게 바꼈다.
이제 진짜로 다시 확인해보자.

오류나던 부분은 해결됐고,
curl -s "https://hub.docker.com/v2/repositories/jungjinlee90/github_jj/tags" | jq '.results[].name' |

위에서 보이는 a870117 태그가 달린 모습이 확인된다.
실제로 pull 해보면

이런식으로 다운이 가능하다.

조회도 잘된다.
여기까지 애플리케이션의 Docker Image화 및 CI 부분을 확인했다.
이제 다음글부터는 CD 부분을 정리해보자.
'Cluster > CI CD' 카테고리의 다른 글
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 8. 수동배포를 자동배포로 바꾸기(ArgoCD) (0) | 2025.03.25 |
---|---|
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 7. Docker Image 수동으로 배포해보기 (0) | 2025.03.21 |
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 5. Github 애플리케이션을 컨테이너 이미지로 변환하기 (0) | 2025.03.21 |
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 4. 쿠버네티스 연결을 위한 작업노드 설정하기 (0) | 2025.03.20 |
쿠버네티스 설치, 구축부터 CI/CD까지 구현해보기 - 3. 작업노드 생성을 위한 KVM 설치 및 OS 설치 (0) | 2025.03.19 |