J'ai tiré l'image Docker officielle de Tomcat en exécutant cette commande.
docker run -it --rm Tomcat:8.0
En l'utilisant comme image de base, je dois créer une nouvelle image contenant mon fichier war dans le dossier Tomcat
webapps
. J'ai créé Dockerfile comme ça.
From Tomcat8
ADD warfile /usr/local/Tomcat
Lorsque j'exécute ce Dockerfile en créant une image, je ne peux pas voir la première page de Tomcat.
Quelqu'un peut-il me dire comment ajouter mon fichier de guerre au dossier webapp d'images Tomcat officiel.
En lisant la documentation du dépôt, vous feriez quelque chose comme ça
FROM Tomcat
MAINTAINER xyz
ADD your.war /usr/local/Tomcat/webapps/
CMD ["catalina.sh", "run"]
Créez ensuite votre image avec docker build -t yourName <path-to-dockerfile>
Et lancez-le avec:
docker run --rm -it -p 8080:8080 yourName
--rm
supprime le conteneur dès que vous l'arrêtez-p
transfère le port à votre hôte (ou si vous utilisez boot2docker sur cette IP)-it
permet le mode interactif, vous voyez donc si quelque chose est déployéEn s'appuyant sur la réponse de @ daniel, si vous souhaitez déployer votre WAR à la racine de Tomcat, j'ai fait ceci:
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"]
Il supprime la webapp racine existante, copie votre WAR dans le nom de fichier ROOT.war puis exécute Tomcat.
docker run -it --rm --name MYTOMCAT -p 8080: 8080 -v .../wars:/usr/local/Tomcat/webapps/Tomcat: 8.0
où le dossier wars contient la guerre à déployer
Comment vérifiez-vous le dossier webapps
?
Le dossier webapps
se trouve dans le conteneur Docker. Si vous souhaitez accéder à votre conteneur webapps
, vous pouvez monter un répertoire Host dans votre conteneur pour l'utiliser comme dossier webapps
. De cette façon, vous pouvez accéder aux fichiers sans accéder à Docker. Détails voir ici
Pour accéder à vos journaux, vous pouvez le faire lorsque vous exécutez votre conteneur, par exemple.
docker run -rm -it -p 8080:8080 **IMAGE_NAME** /path/to/Tomcat/bin/catalina.sh && tail -f /path/to/Tomcat/logs
ou vous démarrez votre conteneur Docker, puis faites quelque chose comme:
docker exec -it **CONTAINER_ID** tail -f /path/to/Tomcat/logs