我正在尝试在容器中运行 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