簡體   English   中英

Docker + Tomcat + .properties - 環境變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM