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

CATALINA_OPTS="-Dkey=value"與啟動 tomcat 時一樣將變數傳遞給 tomcat 。

就我而言,它是 docker 容器。因此按以下方式啟動它是有效的。

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

相關內容