2016-04-27 29 views
2

我是Docker的新手。我的要求是創建應安裝Wildfly服務器泊塢窗文件,戰爭文件添加到Wildfly,添加自定義屬性文件(其中包含數據庫連接字符串,將通過應用程序讀取)在Docker中更新自定義配置文件

我泊塢文件

FROM jboss/wildfly 
Add application.properties /opt/jboss/ 
ADD spring_application.war /opt/jboss/wildfly/standalone/deployments/ 

application.properties

db_url = jdbc:mysql://**server host name**:**port** 
db_username = **username** 
db_password = **password** 

注:在上面的文件服務器的主機名,端口,usernam E,密碼應該是動態的

戰爭文件(彈簧支架應用)將讀取application.properties

參數我能夠成功安裝Wildfly和部署的應用程序。現在我需要在運行時在application.properties中傳遞參數。如果有人有解決方案,請幫助我。

回答

0

您可以通過覆蓋入口點腳本來做到這一點。這裏是run.sh腳本示例,它在引導應用程序之前創建application.properties文件。

docker run -e MYSQL_HOST=mysqlhost -e MYSQL_USER=user -e MYSQL_PASS=pass wildflyimage 

run.sh

#!/bin/bash -x 
PROPERTIES=/opt/jboss/application.properties 
echo "db_url = jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT" > ${PROPERTIES} 
echo "db_username = ${MYSQL_USER}" >> ${PROPERTIES} 
echo "db_password = ${MYSQL_PASS}" >> ${PROPERTIES} 
exec /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 [email protected] 

Dockerfile

FROM jboss/wildfly 
ADD run.sh /run.sh 
CMD /run.sh 
ADD spring_application.war /opt/jboss/wildfly/standalone/deployments/ 

與運行此