보간으로 Compose 파일의 변수 설정·사용·관리하기

보간으로 Compose 파일의 변수 설정·사용·관리하기 (Set, use, and manage variables in a Compose file with interpolation)

Compose 파일은 변수를 사용해 더 큰 유연성을 제공할 수 있어요. 여러 버전을 테스트하기 위해 이미지 태그를 빠르게 전환하거나, 볼륨 소스를 로컬 환경에 맞게 조정하고 싶을 때 매번 Compose 파일을 수정할 필요 없이 런타임에 값을 삽입하는 변수를 설정할 수 있어요.

보간(interpolation)은 런타임에 Compose 파일에 값을 삽입하는 데도 사용되며, 이를 통해 변수를 컨테이너 환경으로 전달할 수 있어요.

출처: 문서

본문

아래는 간단한 예시예요:

$ cat .env
TAG=v1.5
$ cat compose.yaml
services:
  web:
    image: "webapp:${TAG}"

.env 파일의 값을 보간으로 삽입해요. config 명령으로 해석된 애플리케이션 구성을 터미널에 출력해 확인할 수 있어요:

$ docker compose config
services:
  web:
    image: 'webapp:v1.5'

보간 문법 (Interpolation syntax)

브레이스(braced) 표현식이 지원돼요. 브레이스 표현식의 경우 다음 형식이 지원돼요:

  • (변수가 설정되고 비어 있지 않으면) 값을 사용
  • (기본값 대체: ${VAR:-default} 등)

보간 문법의 각 형식(${VAR}, ${VAR-default}, ${VAR:-default}, ${VAR:?error} 등)은 상황에 따라 변수가 설정되지 않았을 때 동작이 달라져요. 자세한 표는 원본 문서를 참고해요.

보간은 environment, image, volumes 등 Compose 파일의 여러 곳에서 사용할 수 있어요.

더 알아보기 (Learn more)