[英]Docker + Tomcat + .properties — Environment Variables
我需要部署一個tomcat服務器來設置MySQL數據庫URL
/META-INF/config.properties
到docker文件中。 我們部署這些容器的方式,IP無法硬編碼到程序中。
有沒有辦法從這個文件中的系統中提取環境變量? 我想做這樣的事情:
mdms.db.url=jdbc:mysql://**${MYSQL_HOST}**/db_mdms?useEncoding=true&characterEncoding=UTF-8&autoReconnect=true
mdms.db.username=root
mdms.db.password=thesecretsauce
我一直在網上搜索,發現我應該可以設置一些
-DMYSQL_HOST=$MYSQL_HOST
當啟動應用程序但啟動帶有該標志的tomcat時沒有做到這一點,我無法讓它工作。
我嘗試過的另一件事是:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="/WEB-INF/config.properties"/>
<property name="ignoreResourceNotFound" value="true" />
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>
雖然這似乎也沒有做到這一點。
我也嘗試過兩個人。
我在Netbeans上運行Xubuntu Linux編程(盡管如果有必要,已經弄清楚如何在沒有netbeans的情況下部署tomcat)
我不是申請作者; 我也不是非常流利的Tomcat / Java網絡應用程序。 然而,這需要完成,並且存在語言障礙(或者拒絕,我還沒有弄明白)阻止我讓作者為我解決這個問題。
我設法解決此問題的方法是在DockerFile中設置CATALINA_OPTS:
ENV CATALINA_OPTS="-Dkey=value"
例如,我的應用程序的整個DockerFile將如下所示:
FROM tomcat:8.0-jre8
ENV spring.profiles.active=dev
ENV CATALINA_OPTS="-Dkey=value"
ADD myWar.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.