Tomcat - 환경 변수를 데이터 속성에 전달

Tomcat - 환경 변수를 데이터 속성에 전달

컨테이너에서 Tomcat을 실행하려고 하는데 DB_HOST환경 변수로 전달하고 싶습니다.

컨테이너를 docker run -e DB_HOST='dbhost001' -p 8080:8080 image_id. 그런데 그게 안되는 것 같더라구요

Data.properties:

db.machine=${DB_HOST}
db.dbname=users
db.username=test
db.password=test

답변1

그것을 알아 냈습니다.

아래와 같이 propertyConfigure추가 하세요 .servlet xml file

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>

db.properties 파일을 아래와 같이 수정합니다.

db.machine=${DB_HOST}
db.dbname=users
db.username=test
db.password=test

Tomcat을 시작할 때 와 마찬가지로 Tomcat에 변수를 전달합니다 CATALINA_OPTS="-Dkey=value".

제 경우에는 도커 컨테이너였습니다. 그래서 다음과 같이 시작했습니다.

docker run-e CATALINA_OPTS="-DDB_HOST=dbhost001" --name tomcat -p 8080:8080 -d tomcat7:0.0.1

관련 정보