2016-04-27 45 views
2

Ich bin neu in Docker. Meine Forderung ist eine Docker-Datei zu erstellen, die Wildfly Server installieren sollte, WAR-Datei zu Wildfly, fügen Sie benutzerdefinierte Eigenschaftendatei hinzufügen (die db-Verbindungszeichenfolgen enthält, die durch Anwendung gelesen wird)benutzerdefinierte Konfigurationsdatei in Docker aktualisieren

Meine Docker Datei

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

Hinweis: in der obigen Dateinamen-Server-Host, Port, usernam e, sollte dynamisch sein Passwort

War Datei (Federauflage Anwendung) liest Parameter aus application.properties

Ich bin in der Lage erfolgreich installieren Wildfly und implementierte Anwendung. Jetzt muss ich Parameter in application.properties zur Laufzeit übergeben. Bitte helfen Sie mir, wenn jemand eine Lösung hat.

Antwort

0

Sie können dies tun, indem Sie das Einstiegspunktskript überschreiben. Hier sehen Sie das Beispiel run.sh-Skript, das die Datei application.properties vor dem Start der Anwendung erstellt.

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/ 

Run dies mit:

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