2016-07-12 11 views
0

Ich versuche, einen Container mit tomcat zu einem Container mit mysql zu verbinden, um eine App bereitzustellen. Ich habe dasselbe in eine Landstreichermaschine reproduziert (tomcat 6, mysql 5.6), aber jetzt möchte ich es mit Dockercontainern machen. Ich habe diese Antwort here mit einigen zusätzlichen Ergänzungen verwendet. für den MySQL-Container Ich betreibe:Verbinden Sie den Tomcat-Container mit dem MySQL-Container

sudo docker run --name mysql -e MYSQL_USER=root -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=my_database_name -d mysql:5.6 

Für den Tomcat-Container

docker run -d -p 8080:8080 --name tomcat --link mysql:mysql -v $PWD/webapp:/usr/local/tomcat/webapps tomcat:6 

Auch ich den Ordner Webapp/with_my_app.war haben. So weit, ist es gut.

Diese spezielle App benötigt einige config in der WEB-INF/context.xml Datei, so dass ich laufen

docker exec -it tomcat bash 

Dann vim ich aktualisiert und installiert und schließlich die context.xml Datei und neu gestartet tomcat bearbeiten.

Aber ich kann meine nicht auf localhost Zugriff auf App: 8080/with_my_app

Was bin ich?

+1

Wahrscheinlich brauchen Sie ein bisschen mehr Informationen und spezifische Fehler. Für Anfänger würde ich jedoch WEB-INF/context.xml über ein Volume externalisieren, so dass Sie es außerhalb des Containers bearbeiten und sicherstellen können, dass es durch Neustarts bestehen bleibt. Dann benutze 'docker exec' aus dem Tomcat-Container, um zu versuchen, auf den MySql-Container zu pingen/zuzugreifen. Wenn Sie so weit kommen, wird es helfen, herauszufinden, was Sie als nächstes tun müssen. – ldg

+0

Welchen Einstiegspunkt verwenden Sie zur Kommunikation mit einem MySQL-Container aus Ihrer Anwendung? – GianArb

+0

@Idg Ich weiß nicht, wie ich die context.xml externalisieren soll, aber nach dem Neustart habe ich es erneut überprüft und der Inhalt wurde durch die Neustarts beibehalten. Also ich denke, das ist nicht das Problem. Ich pinged an die db (nett, übrigens) und es hat gut funktioniert. – StLia

Antwort

0

Include --cap-add SYS_PTRACE während Tomcat-Container ausgeführt wird.

docker run -d -p 8080:8080 --cap-add SYS_PTRACE ......