docker-compose 환경변수 사용 및 치환
- Development/Docker
- 2020. 12. 26.
docker-compose 환경변수 사용 및 치환 방법
docker-compose를 실행할 때, 반복되는 값 혹은 변경 가능한 값을 변수화 해놓으면 재사용성을 높일 수 있다. docker-compose 사용시 어떻게 변수화를 할 수 있는지 정리한다.
샘플 yml 파일
version: '3'
services:
api:
image: myservice:1.0
volumes:
- /home_dir/commitlog:/var/lib/cassandra/commitlog:rw
만약, 원하는 결과물 yml 파일이 위와 같다고 하자. 버전이 달라질 수 있고, 디렉토리가 변할 수 있다고 할 수 있다. 이 값들을 변수화 해보고자 한다.
변수 적용한 yml 파일
변수를 표기할 때는, ${변수명}과 같이 표기하면 된다.
version: '3'
services:
api:
image: myservice:${VERSION}
volumes:
- ${HOME_DIR}/commitlog:/var/lib/cassandra/commitlog:rw
변수가 잘 동작하는지 검증하는 커맨드
$ docker-compose config
위 명령어로 현재 구성을 확인할 수 있다. 즉, 변수에 적당한 값이 지정이 되어 있다면, 제대로 설정이 반영이 되는지는 위 명령어로 사전 검증이 가능하다.
변수 적용 방법-1: 실행시 파라미터 명시
$ VERSION=1.0 HOME_DIR=/test docker-compose config
services:
api:
image: myservice:1.0
volumes:
- /test/commitlog:/var/lib/cassandra/commitlog:rw
version: '3'
실행 스크립트 앞에 변수를 선언하고 실행해보면, 결과가 반영이 된 것을 확인할 수 있다.
변수 적용 방법-2: export로 환경변수 선언
$ export VERSION=1.0
$ export HOME_DIR=/test
$ docker-compose config
services:
api:
image: myservice:1.0
volumes:
- /test/commitlog:/var/lib/cassandra/commitlog:rw
version: '3'
shell에서 환경변수가 선언되어 있다면, 그대로 사용이 가능하다는 것을 확인할 수 있다.
변수 적용 방법-3: .env내 환경변수 선언
$ cat .env
VERSION=1.0
HOME_DIR=/test
$ docker-compose config
services:
api:
image: myservice:1.0
volumes:
- /test/commitlog:/var/lib/cassandra/commitlog:rw
version: '3'
변수 적용 방법-4: 외부 파일 선언 & 주입
$ cat develop.cfg
VERSION=1.0
HOME_DIR=/test
$ docker-compose --env-file=develop.cfg config
services:
api:
image: myservice:1.0
volumes:
- /test/commitlog:/var/lib/cassandra/commitlog:rw
version: '3'
'Development > Docker' 카테고리의 다른 글
Docker Registry(도커 레지스트리)를 활용하여 사설 레지스트리 사용하기 (0) | 2021.08.30 |
---|---|
docker-compose: An http request took too long to complete 에러? (0) | 2021.02.08 |
Windows10에 docker 간편 설치하기 (0) | 2020.11.11 |