在Docker中更新自定义配置文件

时间:2016-04-27 12:01:19

标签: java spring docker jboss wildfly

我是 Docker 的新手。我的要求是创建一个docker文件,它应该安装Wildfly服务器,将war文件添加到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**

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

战争文件(弹簧休息应用程序)将从application.properties中读取参数

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

1 个答案:

答案 0 :(得分:0)

您可以通过覆盖入口点脚本来完成此操作。下面是示例run.sh脚本,它在启动应用程序之前创建application.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