본문 바로가기

About/Docker

[Docker] Docker Compose build

docker-compose.yml 작성 시 이미지의 작성을 Dockerfile에 기술하고 그것을 자동으로 빌드하여 베이스 이미지로 지정할때는 build를 지정합니다. build에는 Dockerfile의 파일 경로를 지정합니다.

예시

다음과 같이 sample 디렉토리 안에 docker-compose.yml과 Dockerfile을 배치합니다.

sample
├── Dockerfile
└── docker-compose.yml

 

docker-compose.yml의 build에는 현재 디렉토리의 Dockerfile의 위치를 지정합니다.

# docker-compose.yml
services:
  webserver:
    build: . # 현재 디렉토리

 

Dockerfile은 다음과 같이 작성합니다.

FROM ubuntu

 

다음 명령어를 실행하여면 지정한 Dockerfile이 자동으로 빌드되어 컨테이너가 생성됩니다.

$ docker-compose up --build
Building webserver
Step 1/1 : FROM ubuntu
latest: Pulling from library/ubuntu
35807b77a593: Pull complete
Digest: sha256:9d6a8699fb5c9c39cf08a0871bd6219f0400981c570894cd8cbea30d3424a31f
Status: Downloaded newer image for ubuntu:latest
 ---> fb52e22af1b0

Successfully built fb52e22af1b0
Successfully tagged sample_webserver:latest
Creating sample_webserver_1 ... done
Attaching to sample_webserver_1
sample_webserver_1 exited with code 0

 

임의의 이름으로 된 Dockerfile을 빌드할 때는 'dockerfile'을 지정합니다. 이 때 Dockerfile의 경로를 'context'로 지정합니다.

또한 인수를 args로 지정할 수 있습니다.이 변수는 Docker Compose를 실행하는 머신 위에서만 유효합니다.

예시

# docker-compose.yml
services:
  webserver:
    build:
      context: /data
      dockerfile: myDockerfile
      args:
        name: jh
        projectno: 1

Docker Compose의 Build에 대하여 다루어보았습니다.

 

다음 도서를 참고하여 작성하였습니다.

www.aladin.co.kr/shop/wproduct.aspx?ItemId=166082298