지난번에는 Dockerfile을 통한 이미지 구축을 알아봤었다!
오늘은 그 중 ENV에 대해 알아보고, 컨테이너 환경변수도 알아보자!
컨테이너 환경변수?
🙋♀️ 환경변수?
환경변수는 다들 알고 있을 것이다.
백엔드 개발을 위해
springboot로 개발한다고 하면,
빌드 시 DB IP, DB password와 같은 값을 환경변수로 넣어주기도 한다!
export DB_IP=127.0.0.1
이렇게 환경변수를 지정하고,
java -jar app.jar
하여 빌드한다
즉, 환경변수는 외부 서버 구성 정보를 추가로 넣어주는 변수인 것이다!
(변경이 있을 때마다 그 정보만 바꿔서 적용 가능하다)
만일 이렇게 환경변수를 지정하는 경우,
# springboot - application.yml
spring:
datasource:
url: jdbc:mysql://${DB_IP}:3306/test_db
이런 식으로 환경 변수를
어플리케이션 코드에 적용하고 사용할 수 있다.
# golang
service_type = os.environ.get('SERVICE_TYPE')
service_port = int(os.environ.get('SERVICE_PORT'))
golang으로 서버를 구축했을 때에는 이렇게 환경변수를 가져올 수 있었다!
🙋♀️ 컨테이너 환경변수?
컨테이너 또한 같은 이유로 환경변수가 필요할 것이다.
그런데, env를 어떻게 지정할 수 있을까?
컨테이너 환경 변수 적용 1 : docker run -e
docker run, 즉 도커 컨테이너를 실행시키면서 env를 줄 수 있다.
docker run -e DB_NAME=test -e DB_PASSWORD=1234 wordpress
이렇게 wordpress 이미지에 대해
DB_NAME = test,
DB_PASSWORD = 1234라는 environment를 사용할 수 있다.
컨테이너 환경 변수 적용 2 : 도커파일 ENV
FROM wordpress:latest
ENV DB_NAME=test
ENV DB_PASSWORD=1234
docker run -e와 동일하게 사용할 수 있다
docker에서 환경변수를 적용한 이후에는,
기존 환경변수 적용과 같은 방식으로 어플리케이션 코드를 수정하여 사용 가능하다!
이번 시간에는 ENV, 환경변수를 알아봤다!
다음 시간에는 도커 볼륨에 대해 알아보자!