도커와 CI
- CI 절차는 코드로부터 시작하는 파이프라인
- 일련의 단계를 밟아 테스트를 통과하고 즉시 배포 가능한 결과물(artifact)을 내놓는다.
- 도커는 CI 절차의 일관성을 유지해 준다.
절차
- 코드 변경이나 정해진 일정에 따라 CI 절차가 시작되면 도커 이미지를 빌드한다.
- CI 파이프라인의 각 단계는 도커 혹은 도커 컴포즈에 의해 실행되며 실제 과정은 컨테이너 내부에서 진행된다.
- 애플리케이션을 컨테이너 안에서 빌드 하므로 CI 서버에 컴파일러나 SDK를 직접 설치할 필요가 없다.
- 자동화된 단위 테스트는 이미지 빌드 단계에 포함되므로 빌드가 깨졌다면 이 절차도 해당 시점에서 중단된다.
- 트래픽을 일으킬 별도의 컨테이너를 실행함으로써 복잡한 엔드 투 엔드(E2E) 테스트를 진행할 수도 있다.
CI를 위한 인프라
- 도커화된 CI 절차에서는 모든 일이 컨테이너 안에서 진행된다.
- 그래도 전체 절차를 수행하려면 형상 관리 시스템, 도커 레지스트리, 자동화 서버 등 몇 가지 인프라스트럭처적인 요소가 필요하다.
- 이들 요소는 선택지가 아주 많지만 이들 모두 도커를 지원한다.
- 깃허브와 애저 데브옵스, 도커 허브를 조합할 수도 있고, 그냥 이들 모두를 한 곳에서 제공하는 깃랩을 사용할 수도 있다.
- 아니면 도커 컨테이너를 사용해 직접 CI 인프라스트럭처를 꾸리는 것도 가능하다.