About/Docker
[Docker] Docker Compose build
김징어
2021. 9. 5. 16:56
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