4.1. 빌드 방식 선택
어떨 때 읽는 장인가
빌드를 처음 시작하기 전에 읽습니다. 세 가지 경로 중 무엇을 쓸지 여기서 정하고, 정한 경로의 장으로 넘어갑니다.
컨테이너 이미지란
애플리케이션과 그것을 실행하는 데 필요한 것(런타임, 라이브러리, 설정)을 하나로 묶은 파일 입니다.
이미지가 있으면 어느 서버에서든 같은 방식으로 실행됩니다. "내 PC 에서는 되는데 서버에서는 안 된다" 는 문제가 줄어듭니다. 실행 환경이 이미지 안에 함께 들어 있기 때문입니다.
파드는 이미지에서 컨테이너를 만들어 실행합니다(3.1 장). 그래서 배포하려면 먼저 이미지가 있어야 합니다.
이미지를 만드는 두 방법
| 방법 | 설명 | 필요 한 것 |
|---|---|---|
| Dockerfile | 어떤 파일을 넣고 어떤 명령을 실행할지 직접 적습니다 | Dockerfile 작성 지식 |
| S2I | 소스 코드만 주면 알아서 만듭니다 | 없음 |
Dockerfile 은 자유도가 높지만 언어·빌드 도구마다 다시 써야 하고, 잘못 쓰면 이미지가 커지거나 보안 문제가 생깁니다.
S2I 는 그 부분을 이미 만들어 둔 것을 씁니다.
S2I 란
S2I(Source-to-Image)는 소스 코드에서 컨테이너 이미지를 바로 만드는 방식 입니다.
Dockerfile 을 쓰지 않아도 언어와 빌드 도구에 맞는 빌더 이미지 가 컴파일과 이미지 생성을 대신합니다.
| Dockerfile | S2I | |
|---|---|---|
| 준비할 것 | Dockerfile 을 씁니다 | 빌더 이미지를 고릅니다 |
| 빌드 방식이 팀마다 | 제각각입니다 | 통일됩니다 |
| 보안 기준 반영 | 각자 챙겨야 합니다 | 빌더 이미지에 이미 반영되어 있습니다 |
| 자유도 | 높습니다 | 빌더가 지원하는 범위 안에서 |
S2I 가 하는 일
동작 순서는 이렇습니다.
| 순서 | 하는 일 |
|---|---|
| 1 | Git 저장소에서 소스를 가져옵니다 |
| 2 |