Mise à jour: nettoyage et indique directement le problème et la solution.
PROBLEME:
Docker-Tomcat était correctement installé et en cours d'exécution, à l'exception de l'erreur 403 Access dans l'application Manager. Il semble également que mon docker Tomcat ne trouve pas ma configuration Tomcat-users.xml.
SOLUTION
Merci à Farhad et Sanket pour les réponses.
[Des dossiers]:
Dockerfile
FROM Tomcat:8.5.11
MAINTAINER Borgy Manotoy <[email protected]>
# Update Apt and then install Nano editor (RUN can be removed)
RUN apt-get update && apt-get install -y \
nano \
&& mkdir -p /usr/local/Tomcat/conf
# Copy configurations (Tomcat users, Manager app)
COPY Tomcat-users.xml /usr/local/Tomcat/conf/
COPY context.xml /usr/local/Tomcat/webapps/manager/META-INF/
Configuration des utilisateurs Tomcat (conf/Tomcat-users.xml)
<Tomcat-users xmlns="http://Tomcat.Apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Tomcat.Apache.org/xml Tomcat-users.xsd"
version="1.0">
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
</Tomcat-users>
Contexte d'application (webapps/manager/META-INF/context.xml)
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
[ÉTAPES ET COMMANDES]:
Construire Docker Image
docker construire -t borgymanotoy/mon-Tomcat-docker.
Exécuter l’image (my-Tomcat-docker et définir le port sur 8088)
exécution du menu fixe --nom my-Tomcat-docker-container -p 8088: 8080 -it -d borgymanotoy/mon-Tomcat-docker
Aller à la bash du conteneur (pour vérifier les fichiers à l'intérieur du conteneur via bash)
docker exec -it biyahe-Tomcat-docker-container bash
Tout d'abord, vous devez exposer votre application dans le conteneur afin de pouvoir vous y connecter depuis dockerhost/network.
docker run -d -p 8000:8080 Tomcat:8.5.11-jre8
Vous devez modifier 2 fichiers pour pouvoir accéder à l'application mangaer à partir de l'hôte distant. (Le navigateur sur l'hôte Docker est considéré comme distant, seuls les paquets reçus dans une boucle de conteneur sont considérés comme locaux pour Tomcat)
/usr/local/Tomcat/webapps/manager/META-INF/context.xml
Notez la section commentée.
<Context antiResourceLocking="false" privileged="true" >
<!--
<Valve className="org.Apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
S'il vous plaît noter la section commentée.
/usr/local/Tomcat/conf/Tomcat-users.xml
comme vous l'avez dit dans la question.
<Tomcat-users xmlns="http://Tomcat.Apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Tomcat.Apache.org/xml Tomcat-users.xsd"
version="1.0">
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
Pour apporter des modifications aux fichiers du conteneur, vous pouvez essayer de créer votre propre image, mais je suggère d'utiliser des volumes de menu fixe ou des montages de liaison.
Assurez-vous également de redémarrer le conteneur pour que les modifications prennent effet.
S'il vous plaît spécifier le port lorsque vous faites un docker run
comme (je crois que mine/Tomcat-version
est le nom de votre image),
docker run -p 8000:8080 -it -d --name MyContainerName mine/Tomcat-version
puis accédez à la page du gestionnaire en utilisant,
http://<ipaddress>:8000/manager/html
Pour obtenir l'adresse IP de l'hôte dans le menu fixe, vous devez exécuter docker-machine ip
Information additionnelle: Vous pouvez aussi entrer dans le conteneur en utilisant la commande ci-dessous,
docker exec -it MyContainerName bash
si vous voulez vérifier différentes choses comme les journaux Tomcat, les fichiers de configuration, etc.
Bien que ce soit assez tard, je voulais laisser mes 2 cents.
J'ai poussé cette solution au niveau supérieur en construisant un exemple de système d'intégration continue qui déploie des guerres sur le docker Tomcat en exécutant simplement mvn clean install
via le projet IDE tout en faisant tourner le conteneur Tomcat docker.
docker run -p 8080:8080 -d --name tom -v <YOUR_VOLUME>:/usr/local/stagingwebapps wintersoldier/Tomcat_ci:1.0