首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker + Tomcat + .properties --环境变量

Docker + Tomcat + .properties --环境变量
EN

Stack Overflow用户
提问于 2015-11-07 21:35:05
回答 1查看 15.5K关注 0票数 9

/META-INF/config.properties

存入docker文件中。以我们部署这些容器的方式,IP不能被硬编码到程序中。

有没有办法在这个文件中从系统中拉出环境变量?我想做这样的事情:

代码语言:javascript
复制
mdms.db.url=jdbc:mysql://**${MYSQL_HOST}**/db_mdms?useEncoding=true&characterEncoding=UTF-8&autoReconnect=true
mdms.db.username=root
mdms.db.password=thesecretsauce

我一直在网上搜索,发现我应该可以设置一些

代码语言:javascript
复制
-DMYSQL_HOST=$MYSQL_HOST

在启动应用程序时,使用该标志启动tomcat并没有起到作用,我也无法让它正常工作。

我尝试过的另一件事是:

代码语言:javascript
复制
    <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 web应用程序。然而,这需要完成,并且有一个语言障碍(或者拒绝,我还没有弄清楚)阻止我让作者为我解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-27 00:25:45

我设法解决这个问题的方法是在DockerFile中设置CATALINA_OPTS:

代码语言:javascript
复制
ENV CATALINA_OPTS="-Dkey=value"

例如,我的应用程序的整个DockerFile将如下所示:

代码语言:javascript
复制
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"]
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33583330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档