도커 컨테이너에서 환경변수 사용하기

jungseo·2023년 10월 11일

Cloud

목록 보기
3/4

프로젝트 중 ec2에 배포할때 java를 받고 환경변수를 설정해주고 하던 과정들이 번거롭게 느껴져 docker를 통해 배포해보기로 했다.
도커 이미지를 빌드하고 해당 이미지로 컨테이너를 실행하는데 환경 변수 설정이 안돼 적용하는 방법을 알아봤다.

도커 이미지 빌드 및 컨테이너 실행은 여기!!!! 포스팅함

도커를 통해 환경변수를 주입하는 방법은 두가지가 있다.

1. -e 옵션 사용

$ docker run -it -p 8080:8080 -e ADMIN_EMAIL=@@@@@@@ jungseow/wonprice:first
  • 여러 환경 변수를 주입하기 제한될 것 같다
$ docker run -it -e "SPRING_PROFILES_ACTIVE=SERVER" jungseow/wonprice:1.1

이런 식으로 -e 옵션으로 서버 프로필을 설정할 수도 있다.

2. env 파일 사용

  • .env 파일 생성 및 작성
docker run -it -p 8080:8080 --env-file ./wonprice.env jungseow/wonprice:first

이 방식으로 환경 변수를 적용하였다.

  • --env-file 명령어를 통해 환경변수 파일의 경로를 명시

도커 내부 환경변수 확인

어플리케이션이 정상작동하는지 확인전 환경변수가 적용이 되었는지 echo 명령어로 확인을 해보았는데 환경 변수가 정상적으로 출력되지않는다..

도커로 실행중인 어플리케이션의 환경변수 접근 방식이 다르다고 한다.

docker exec -it 컨테이너ID sh -c 'echo $환경변수이름'
  • docker exec : 도커 내부에서 명령어를 실행하기 위한 명령어

  • sh: 컨테이너 내에서 사용할 셸의 종류를 지정, -c 옵션으로 전달된 명령어를 실행하는데 사용

  • -c: 컨테이너 내부에서 실행할 명령어를 지정, 뒤에 실제로 실행할 명령어 작성

env 파일에 작성했던 환경변수가 잘 출력된다!!!

참고 블로그

0개의 댓글