docker file 외부에서 환경 변수 값 변경이 가능한가요 ?
안녕하세요 :)
강의를 통해 학습하고
실제 프로젝트를 도커 이미지로 만들고, 허브에 올린 뒤
ec2 서버에서 도커 이미지를 불러와서 컨테이너를 띄워보고..
그렇게 학습 하고 있습니다!
한가지 궁금한게 생겼는데요,
현재 개인적으로 진행하고 있는 스프링 프로젝트의 경우
application.properties에 db 정보를 입력받고 있습니다.
예를 들면 db -> my_db (마찬가지로 도커로 띄웠고, 이름을 my_db라고 했습니다)
spring.datasource.hikari.username=계정명
spring.datasource.hikari.password=비밀번호
이런식으로 이미 값을 주입한 뒤, docker build 로 이미지를 만들고,
ec2 서버에서 해당 이미지를 받아와서 docker run 할 때
저 username , password, db이름 같은 정보를 이미 만들어진 image 외부에서 변경할 수 있나요 ?
docker run 시 -e 를 통해서 application-prod.properties 이런식으로
환경 파일을 다른걸 적용하게끔은 할 수 있는데
해당 변수의 값들이 이미 정해진 상황에서
-e 옵션을 통해 값 변경도 가능한지 궁금합니다.
감사합니다 :)
Answer 2
0
안녕하세요!
도커를 공부하고 실무에 적용할 때 생기는 중요한 이슈에 대해서 문의주셨네요.
도커 컨테이너를 실행할 때 변경할 수 있는 방법은 -e를 이용하여 환경변수를 지정하는 것입니다.
아마도.. 다음과 같은 방법을 사용할 수 있습니다.
1. 기존
서버 실행
2. 방법 1
환경변수를 읽어서 application.properties 에 해당 값을 수정한 다음 서버 실행
3. 방법 2
application-prod.properties 파일을 application.properties 파일로 변경한 다음 서버 실행
Dockerfile에서 CMD 항목에 서버를 바로 실행하지 말고 쉘 스크립트를 하나 만들어서 이런저런 작업을 하고 서버를 실행하면 됩니다.
이론적으로는 가능하고 실제로도 잘 동작하지만, 귀찮기 때문에 spring boot에서 자체적으로 더 편한 방법을 제공합니다.
1. spring boot 방식
환경변수중에 SPRING_PROFILES_ACTIVE=prod 를 지정하면 자동으로 application-prod.properties 파일을 바라봅니다.
개발할 땐 application.properties 설정을 바라보고 docker로 운영 서버에 배포할 땐 -e SPRING_PROFILES_ACTIVE=prod 만 추가하면 됩니다.
2. properties에 env 추가
spring.datasource.hikari.username=${DB_USER:devuser}
spring.datasource.hikari.password=${DB_PASS:devpass}
기존에 사용한 properties 내용을 다음과 같이 바꾸고 DB_USER, DB_PASS env를 사용할 수도 있습니다.
여러 방법중에 편한 방법을 시도해보시면 될 것 같습니다.
감사합니다!
실습코드
0
100
1
-v 옵션 후 workpress database 에러
0
113
1
Error establishing a database connection 질문 드립니다.
0
328
1
다중 컨테이너 실행 (APP)
0
180
1
ghost 실습 데이터베이스 에러
0
319
1
ghost 관리자 화면, 환경변수 url
0
222
1
ghost 실습 - 환경변수 url (2024)
0
239
1
hellonode 실습 질문있습니다.
0
182
1
docker-compose.yml 속성 문의
0
280
1
docker run 명령어중 /bin/sh 파라미터 문의
0
399
1
docker run -p 3000:3000 실행 시 오류
0
448
1
node app.js 실행 에러
0
323
1
Permission denied
0
668
1
result code build 시에 오류 있으신 분들
4
360
2
frontend, backend environment port 속성 관련 질문
0
370
1
app.js 실행 시 http 모듈 관련 이슈
0
337
1
방명록 배포과정중 질문이 있습니다.
0
302
1
Error establishing a database connection 에러 해결좀 해주세요
0
1392
1
docker 설치 오류
0
623
1
도커 기본 명령어 진행 중 막히는 부분
0
350
1
custom docker와 Base Image
0
241
1
안녕하세요 -d 옵션과 --rm 옵션에 대해서 질문을 하고자 합니다!
0
273
1
-v flag 에 질문있습니다
0
249
1
윈도우 파워쉘로 도커를 할라고하는데 컨테이너 만들기는 어떻게 해야되나요
0
773
1

