Mit diesem Befehl habe ich ein offizielles Docker-Image für Tomcat erstellt.
docker run -it --rm Tomcat:8.0
Wenn ich dieses als Basis-Image verwende, muss ich ein neues Image erstellen, das meine Kriegsdatei im Ordner Tomcat
webapps
enthält. Ich habe Dockerfile so erstellt.
From Tomcat8
ADD warfile /usr/local/Tomcat
Wenn ich dieses Dockerfile durch Erstellen eines Images starte, kann ich die Tomcat-Startseite nicht sehen.
Kann mir jemand sagen, wie ich mein Warfile zum offiziellen Webapp-Ordner für Tomcat-Bilder hinzufügen kann?.
Wenn Sie aus der Dokumentation des Repos lesen, würden Sie so etwas tun
FROM Tomcat
MAINTAINER xyz
ADD your.war /usr/local/Tomcat/webapps/
CMD ["catalina.sh", "run"]
Dann baue dein Bild mit docker build -t yourName <path-to-dockerfile>
Und führe es aus mit:
docker run --rm -it -p 8080:8080 yourName
--rm
entfernt den Container, sobald Sie ihn anhalten-p
leitet den Port an Ihren Host weiter (oder wenn Sie boot2docker verwenden, an diese IP)-it
ermöglicht den interaktiven Modus, sodass Sie sehen können, ob etwas bereitgestellt wirdAufbauend auf @ daniels Antwort, wenn Sie Ihr WAR im Stammverzeichnis von Tomcat bereitstellen möchten, habe ich Folgendes getan:
FROM Tomcat:7-jre7
MAINTAINER xyz
RUN ["rm", "-fr", "/usr/local/Tomcat/webapps/ROOT"]
COPY ./target/your-webapp-1.0-SNAPSHOT.war /usr/local/Tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
Es löscht die vorhandene Root-Webanwendung, kopiert Ihre WAR-Datei in den Dateinamen ROOT.war und führt dann Tomcat aus.
docker run -it --rm --name MYTOMCAT -p 8080: 8080 -v .../wars:/usr/local/Tomcat/webapps/Tomcat: 8.0
wobei der Ordner WARS WAR enthält, der bereitgestellt werden soll
Wie überprüfe ich den Ordner webapps
?
Der Ordner webapps
befindet sich im Docker-Container. Wenn Sie auf Ihren Container webapps
zugreifen möchten, können Sie ein Host-Verzeichnis in Ihrem Container bereitstellen, um es als Ordner webapps
zu verwenden. Auf diese Weise können Sie auf Dateien zugreifen, ohne auf Docker zuzugreifen. Details siehe hier
Um auf Ihre Protokolle zuzugreifen, können Sie dies tun, wenn Sie Ihren Container ausführen, z.
docker run -rm -it -p 8080:8080 **IMAGE_NAME** /path/to/Tomcat/bin/catalina.sh && tail -f /path/to/Tomcat/logs
oder Sie starten Ihren Docker-Container und machen dann etwas wie:
docker exec -it **CONTAINER_ID** tail -f /path/to/Tomcat/logs