build 에 바로 빌드할 파일이 있는 경로를 적을 수 있음version: "3.9"
services:
webapp:
build: ./dir
build 밑에 object를 구성해서 상세하게 적을 수도 있음context : Dockerfile이 있는 디렉토리의 경로 or git repository URLdockerfile : Dockerfile 말고 다른 이름으로 dockerfile을 만들었을 때 설정. context도 같이 지정해줘야 함args : 빌드할 때 추가할 환경 변수를 설정. Dockerfile에 미리 설정해둔 ARG 변수에 값을 전달version: "3.9"
services:
webapp:
build:
context: ./dir
dockerfile: Dockerfile-alternate
args:
buildno: 1 # Dockerfile에 buildno라는 ARG가 있어야 함
service 간의 종속성을 표현docker-compose up을 실행하면 db, redis가 먼저 실행되고 web이 제일 마지막에 실행됨docker-compose up web을 실행해도 자동으로 depends_on에 있는 서비스 먼저 실행됨docker-compose stop을 하면 web 먼저 종료되고 db, redis가 그 다음에 종료됨version: "3.9"
services:
web:
build: .
depends_on:
- db
- redis
redis:
image: redis
db:
image: postgresdepends_on은 web을 실행하기 전에 db와 redis가 준비되었는지 기다리지 않음. 그냥 db와 redis를 시작할 뿐임.condition 속성 사용service_started : depends_on에 condition으로 아무것도 적지 않았을 때 기본 설정service_healthy : 이 서비스를 시작하기 전에 의존하고 있는 서비스가 "healthy"(healthcheck에서 감지함)로 예상한다고 설정service_completed_successfully : 이 서비스를 시작하기 전에 의존하고 있는 서비스가 실행 성공했을 것으로 예상한다고 설정services:
web:
build: .
depends_on:
db:
condition: service_healthy
restart: true
redis:
condition: service_started
redis:
image: redis
db:
image: postgresrestart : true로 설정하면 의존 설정해둔 service가 업데이트되면 이 service도 반드시 재시작해야 한다는 걸 설정depends_on은 무시됨참고