DockerHub-GitHub 연동하여 Autobuild 하기

2017. 8. 2. 14:44Docker

목표 : Github의 Repository에 Dockerfile과 프로젝트의 변동사항이 Push가 될 때, 변동된 부분에 대해서 Dockerhub에서 이를 자동적으로 불러들여와 Build를 하는것

이번 포스팅의 최종적인 목표는 github에서 프로젝트에 대한 변동사항을 가지고 오면, dockerhub에서 해당 프로젝트의 변동사항에 대해서 새롭게 이미지를 build하고 새롭게 빌드된 내용을 aws에서 자동적으로 배포하는 과정에 대해서 실험적인 포스팅을 해보려고 합니다. 일단 첫번째 목표는 Github와 Dockerhub 간의 관계를 파악하여, 연동하는 방법에 대해 알아 보도록 하겠습니다.

GitHub와 DockerHub의 연동과정

준비물 : github의 계정의 repository, gitbash, docker, dockerhub 계정



  1. GitHub Repository를 만들어서 TEST할 Dockerfile 을 넣어놓도록 합니다.



  2. 지금 제 Dockerfile의 내용은 밑에 사진과 같습니다.



  3. DockerHub 홈페이지에 들어가서 자신의 계정에 로그인 한 후에 자신의 계정의 ▼버튼을 눌러서 Setting 을 선택합니다.




  4. 그러면 메뉴바가 한개 더 생성이 되는데, Link Accounts & Services 를 선택해줍니다.(초기 메뉴는 : Account Setting)
  5. 원격저장소를 GitHub 를 이용했는지, 아니면 Bitbucket을 이용했는지 선택합니다.




  6. 제어제한을 둔 Autobuild를 사용하지 않을 것이기 때문에 위에 Public and Private 를 선택 해줍니다.



  7. 자신의 계정에 맞게 등록을 하고 나면 밑에 보이는 그림과 같은 자신의 계정과 계정에 설정된 사진이 보일 것입니다. 이렇게 보여야 자신의 DockerHub의 계정과 GitHub의 계정이 연동이 되기 위한 첫 단추를 완성시켰습니다.




  8. 이번엔 DockerHub에서 GitHub로 부터 AutoBuild 될 DockerHub의 저장소가 필요하기때문에 만들어 줄 것입니다. Create 버튼의 ▼을 클릭하여 Create AutoBuild를 클릭하여 줍니다.




  9. 그러면 방금전에 현재 DockerHub의 계정과 GitHub의 계정을 연결해놓았기 때문에 연결한 GitHub의 계정의 저장소목록들이 많이 나올 것입니다. 저는 처음에 test용도로 autobuild 라는 저장소를 만들어 났었기 때문에 이 Repository와 연결을 하도록 설정을 하겠습니다.




  10. 그 다음 Create Automate Build 페이지에서 별다른 사항이 없으면, Short Description을 입력하고 Create 버튼을 클릭하여 자동빌드될 저장소 생성을 완료시켜줍니다.




  11. GitHub와 DockerHub의 연동설정이 모두 끝이 났습니다. 이제 연동이 되었는지 확인 보도록 하겠습니다. 방금 만들었던 Autobuild가 가능한 DockerHub의 저장소에서 tags부분을 알려주는 부분입니다. 아직은 아무것도 저장소에 저장이 되어있지 않습니다.




  12. 처음에는 수동으로 GitHub에 있는 autobuild 저장소에 있는 Dockerfile을 이용해서 이미지를 빌드해주어야 합니다. 그러기 위해서는 Build Settings 를 눌러서 Trigger버튼을 눌러줍니다. 이 말의 뜻은 master 브랜치에 있는 Dockerfile을 이용해서 해당 DockerHub 저장소에 이미지를 빌드하겠다는 소리입니다. Trigger를 해주고 나서 마지막으로 Save Changes 를 해서 저장을 합니다.




  13. 그러고 나서 Tags를 다시 들어가보면 , latest라는 Tag의 이름을 가진 이미지가 저장된 것을 볼 수가 있습니다. 즉, 최초로 GitHub의 Dockerfile을 이용해서 이미지를 빌드 할때는 수동방식으로 12번과 같은 방식을 통해서 빌드해야 합니다.




  14. 이 포스팅의 마지막 목표인 GitHub에 push를 했을 때, DockerHub에서 AutoBuild를 할 수 있는지에 대해서 실습해보겠습니다.로컬저장소에서 그림과 같이 Dockerfile을 아까와 달리 MAINTAINER를 추가시켰습니다. 그리고 저는 저의 GitHub 원격저장소에 push를 하도록 하였습니다.




  15. GitHub 원격저장소에는 무사히 변경된 내용을 push 한 내용을 확인하였습니다.





  16. 그러면 DockerHub에도 변경된 내용이 AutoBuild가 되었을까요? Build Details를 들어가보면 Auto Building을 하고 있는 모습을 볼 수 있습니다. 만약 Building해서 성공이 된다면 Success를 할 것입니다.

'Docker' 카테고리의 다른 글

Github에 ssh키 생성하고 등록하기  (1) 2017.07.25
Docker Mysql 이미지로 DB 연동하기  (0) 2017.07.21
Docker 기본명령  (0) 2017.07.19