favicon Jay Lee DevLog

728x90
300x250

오늘 글은 짧은 글이 될거다.

파일 하나만 설정해주면 끝이라서.

 

오늘 하는 내용은 어제 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 부분을 정리해보자.

728x90
반응형

+ Recent posts

/ /

Contact

📧 dlwjdwls60@naver.com


블로그에 내용이 있으면 해당 글을 보여주며, 없으면 내용이 복사된 채로 ChatGPT로 연결됩니다.