简体   繁体   English

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

[英]update custom configuration file in Docker

I am new to Docker .我是Docker 的新手。 My requirement is to create a docker file which should install Wildfly server, add war file to Wildfly , add custom property file (which contains db connection strings which will read by application)我的要求是创建一个应该安装Wildfly服务器的Wildfly文件,将 war 文件添加到Wildfly ,添加自定义属性文件(其中包含将由应用程序读取的数据库连接字符串)

My Docker file我的 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**

Note: in the above file server host name, port, username, password should be dynamic注意:上面文件服务器中的主机名、端口、用户名、密码应该是动态的

War file (spring rest application) will read parameters from application.properties War文件(spring rest 应用程序)将从 application.properties 读取参数

I am able successfully install Wildfly and deployed application.我能够成功安装Wildfly和部署的应用程序。 Now i need to pass parameters in application.properties at runtime.现在我需要在运行时在 application.properties 中传递参数。 Please help me if anyone has solution.如果有人有解决方案,请帮助我。

You can do this by overwriting entrypoint script.您可以通过覆盖入口点脚本来做到这一点。 Here is example run.sh script which creates application.properties file before booting application.这是在启动应用程序之前创建 application.properties 文件的示例 run.sh 脚本。

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/

Run this with:运行它:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM