Tomcat - passe variável de ambiente para propriedades de dados

Tomcat - passe variável de ambiente para propriedades de dados

Estou tentando executar o Tomcat em um contêiner e quero passar DB_HOSTcomo variável de ambiente.

Tentei iniciar o contêiner como docker run -e DB_HOST='dbhost001' -p 8080:8080 image_id. Mas isso não parece funcionar

Data.properties:

db.machine=${DB_HOST}
db.dbname=users
db.username=test
db.password=test

Responder1

Descobri.

Adicione propertyConfigurecomo servlet xml fileabaixo:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="searchSystemEnvironment" value="true" />
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
</bean>

Modifique o arquivo db.properties como abaixo:

db.machine=${DB_HOST}
db.dbname=users
db.username=test
db.password=test

Passe a variável para o Tomcat como CATALINA_OPTS="-Dkey=value"ao iniciar o Tomcat.

No meu caso, era o contêiner docker. Então, começar da seguinte maneira funcionou.

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

informação relacionada