更新Docker中的自定义configuration文件

我是Docker的新手。 我的要求是创build一个Wildfly文件,它应该安装Wildfly服务器,向Wildfly添加war文件,添加自定义属性文件(其中包含将由应用程序读取的db连接string)

我的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** 

注意:在上面的文件服务器主机名,端口,用户名,密码应该是dynamic的

War文件(spring rest应用程序)将从application.properties中读取参数

我能够成功安装Wildfly和部署的应用程序。 现在我需要在运行时在application.properties中传递参数。 如果有人有解决scheme,请帮助我。

您可以通过覆盖入口点脚本来做到这一点。 这里是run.sh脚本示例,它在引导应用程序之前创buildapplication.properties文件。

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 $@ 

Dockerfile

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

运行这个:

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