inflearn logo
강의

Course

Instructor

Docker Guide for Beginners

docker file 외부에서 환경 변수 값 변경이 가능한가요 ?

Resolved

3348

changhyuns

3 asked

2

안녕하세요 :)

 

강의를 통해 학습하고 

실제 프로젝트를 도커 이미지로 만들고, 허브에 올린 뒤

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 옵션을 통해   값 변경도 가능한지 궁금합니다.

 

 

감사합니다 :)

properties docker dockerfile

Answer 2

0

changhyuns

답변 감사합니다 :) !!

0

subicura

안녕하세요!

도커를 공부하고 실무에 적용할 때 생기는 중요한 이슈에 대해서 문의주셨네요.

도커 컨테이너를 실행할 때 변경할 수 있는 방법은 -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