Docker-compose version 3.4 부터 생긴 포맷라고 한다.
선언은 파일의 맨 위에 선언해야 하며, 접두어로 x-
를 붙여줘야한다.
선언시 &
를 사용하고, 호출 시에는 *
를 사용한다.
예시는 아래와 같다. (HDFS 구축 docker-compose 파일 중 일부)
version: "3.4"
# 이미지와 네트워크 정보에 대한 base service를 지정
x-datanode_base: &datanode_base
image: hadoop-datanode:2.9.2
networks:
- bridge
services:
datanode01:
<<: *datanode_base
container_name: datanode01
hostname: datanode01
volumes:
- datanode01:/opt/hadoop/dfs/data
datanode02:
<<: *datanode_base
container_name: datanode02
hostname: datanode02
volumes:
- datanode02:/opt/hadoop/dfs/data
datanode03:
<<: *datanode_base
container_name: datanode03
hostname: datanode03
volumes:
- datanode03:/opt/hadoop/dfs/data
volumes:
datanode01:
datanode02:
datanode03:
networks:
bridge:
위처럼 반복되는 경우에 사용하면 좋다.
Override도 제공한다. 이때는 *
만 사용하는 것이 아닌, <<
도 쓴다.
version: "3.9"
x-volumes:
&default-volume
driver: foobar-storage
services:
web:
image: myapp/web:latest
volumes: ["vol1", "vol2", "vol3"]
volumes:
vol1: *default-volume
vol2:
<< : *default-volume
name: volume02
vol3:
<< : *default-volume
driver: default
name: volume-local
위 처럼 사용할 경우, 아래와 같이 오버라이드 된다.
vol1:
driver: foobar-storage
vol2:
driver: foobar-storage
name: volume02
vol3:
driver: default
name: volume-local
반응형
'Tech > Docker' 카테고리의 다른 글
docker volume 파일 우선순위 (0) | 2021.05.04 |
---|---|
docker 정의 정리 (0) | 2021.02.18 |