1. 개요
<Docker 가상 환경 구축 입문>의 <Chapter 4. Build를 자동화하자>를 읽고 정리한 내용으로,
이번 문서의 내용은 GitHub와 Docker Hub의 연동을 통한 Automated Build에 대한 소개입니다.
2. Automated Build 개요
- Automated Build(자동 빌드)란, 자동으로 이미지 빌드를 실행하는 것
- GitHub나 Bitbucket 등 소스 코드 호스팅 서비스를 통해 Build Context File*을 관리하며 해당 레포지터리에 변경이 발생하면 자동으로 빌드를 실행
- 자동으로 빌드를 실행하여, 수동 빌드 작업보다 효율적으로 애플리케이션을 배포/갱신할 수 있음
*Build Context File: Dockerfile이나 애플리케이션, 라이브러리 등 빌드에 필요한 파일
3. Automated Build의 동작 순서
- PC 상에서 수정한 애플리케이션 소스 코드를 GitHub 등 레포지터리에 Push
- GitHub가 Docker Hub의 서버에 변경을 통지
- 통지를 받은 Docker Hub가 GitHub 상의 빌드 컨텍스트를 기반으로 새로운 이미지 빌드를 실행
4. Docker Hub에서의 Automated Build 설정
- Docker Hub에 생성한 레포지터리에서 “Builds” 설정에서 Automation Build 설정 가능
- GitHub나 Bitbucket 계정과 연결이 안 된 경우, “Builds” -> “Automation Build”에서 계정 연결
- 계정 연결이 된 경우, “Builds” -> “Configure Automated Builds”에서 설정
- Dockerfile의 위치가 GitHub 상 레포지터리의 루트 디렉토리가 아닐 경우, Build Context 변경
- Dockerfile의 파일명이 다른 경우, Dockerfile location의 설정 변경
5. Automated Build 실행 예제 - 샘플 이미지를 사용한 Automated Build 예제
- GitHub에 레포지터리 생성
-
로컬 PC에서 Dockerfile 작성
- Author에 설정된 이름을 출력하는 정적 페이지 출력하는 sample 이미지 사용
$ vi Dockerfile FROM dockersamples/static-site ENV AUTHOR=“[username]”
-
GitHub 레포지터리에 Dockerfile 추가
$ git add Dockerfile $ git commit -m “Add Dockerfile” $ git push -u origin master
-
Docker Hub의 해당 레포지터리 Builds 탭에서 자동 빌드 상태 확인
-
docker run 실행
$ docker run -itd -p 8080:80 [username]/[repository name]
-
Localhost:8080 접속하여 이미지 실행 확인