우노
[Docker] 환경 변수 전달 본문
들어가기 앞서,
- 해당 포스트에선, Docker에서 매개 변수 및 환경 변수를 다루는 방법에 대해서 다뤄보겠습니다.
이미지 빌드 시 Dockerfile 내부로 매개 변수 전달
Dockerfile
# FROM절 이전에 선언한 매개변수는 FROM절 이전에만 사용할 수 있습니다. ARG imageversion FROM python:${imageversion} # FROM절 이후에 선언한 매개변수는 FROM절 이후에만 사용할 수 있습니다. ARG foldername RUN mkdir ${foldername}
- 입력 받을 매개변수를 ARG를 사용해 미리 선언해야합니다.
이미지 빌드
docker build -t <image-name> . --build-arg imageversion="3.9.15" --build-arg foldername="hello"
- 원하는 매개 변수 개수 만큼 --build-arg 옵션을 할당해야합니다.
컨테이너 생성 시 컨테이너 내부로 환경 변수 전달
해당 방식은 2가지 방법으로 진행할 수 있습니다.
Dockerfile 내부에 환경 변수를 선언하는 방식
FROM python:3.9.15 # 컨테이너 내부 적용할 환경 변수 설정 ENV foldername=hello
컨테이너 생성 명령 시 환경 변수를 전달하는 방식
docker run -d -it -e foldername=hello <image-name> /bin/bash
- 원하는 환경 변수 개수 만큼 -e 옵션을 할당해야합니다.
적용된 환경 변수는 생성한 컨테이너에 접속한 뒤, env 명령어를 통해 확인할 수 있습니다.
응용
앞서 설명한 방식들은 아래와 같이 응용할 수 있습니다.
- 이미지 빌드 과정에서 Dockerfile 내부로 매개 변수를 전달한 뒤,
- 해당 매개 변수를 컨테이너의 환경 변수로 설정하는 방법
Dockerfile
# 이미지 빌드 시 전달 받은 매개 변수를 적용 ARG imageversion FROM python:${imageversion} # 이미지 빌드 시 전달 받은 매개 변수를 컨테이너 내부 환경 변수로 설정 ARG foldername ENV foldername=${foldername}
이미지 빌드
docker build -t <image-name> . --build-arg imageversion="3.9.15" --build-arg foldername="hello"
컨테이너 생성
docker run -d -it <image-name> /bin/bash
컨테이너에 접속한 뒤, 적용된 환경 변수 확인
env
'DevOps > Docker' 카테고리의 다른 글
Comments