Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

443
Vistas
La configuración de los usuarios de Docker Tomcat no funciona

Actualización: limpieza e indicar directamente el problema y la solución.

PROBLEMA:

Docker-tomcat se instaló y ejecutó correctamente, excepto por el error de acceso 403 en la aplicación Manager. También parece que mi docker tomcat no puede encontrar mi configuración tomcat-users.xml.

SOLUCIÓN

Gracias a Farhad y Sanket por las respuestas.

[Archivos]:

Dockerfile

 FROM tomcat:8.5.11 MAINTAINER Borgy Manotoy <borgymanotoy@ujeaze.com> # 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/

Configuración de usuarios de 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>

Contexto de la aplicación (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>

[PASOS Y COMANDOS]:

  1. Crear imagen acoplable

    docker build -t borgymanotoy/my-tomcat-docker.

  2. Ejecute Image (my-tomcat-docker y establezca el puerto en 8088)

    docker run --name my-tomcat-docker-container -p 8088:8080 -it -d borgymanotoy/my-tomcat-docker

  3. Vaya a bash del contenedor (para verificar archivos dentro del contenedor a través de bash)

    docker exec -it biyahe-tomcat-docker-container bash

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Primero debe exponer su aplicación en el contenedor, para que pueda conectarse desde dockerhost/network.

 docker run -d -p 8000:8080 tomcat:8.5.11-jre8

Debe cambiar 2 archivos para acceder a la aplicación mangaer desde el host remoto. (El navegador en el host Docker se considera remoto, solo los paquetes recibidos en el bucle invertido de los contenedores se consideran locales para Tomcat)

  1. /usr/local/tomcat/webapps/manager/META-INF/context.xml Tenga en cuenta la sección comentada.

     <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" /> -->

Tenga en cuenta la sección comentada.

  1. /usr/local/tomcat/conf/tomcat-users.xml como indicó en la pregunta.

     <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" />

Para realizar cambios en los archivos en el contenedor, puede intentar crear su propia imagen, pero le sugiero que use volúmenes acoplables o montajes de enlace.

También asegúrese de reiniciar el contenedor para que los cambios surtan efecto.

about 4 years ago · Santiago Trujillo Denunciar

0

Especifique el puerto cuando docker run (creo mine/tomcat-version es el nombre de su imagen),

docker run -p 8000:8080 -it -d --name MyContainerName mine/tomcat-version

luego acceda a la página del administrador usando,

 http://<ipaddress>:8000/manager/html

Para obtener la dirección IP del host en la ventana acoplable, es necesario ejecutar docker-machine ip

Información adicional: también puede ingresar al contenedor usando el siguiente comando,

docker exec -it MyContainerName bash si desea verificar diferentes cosas como registros de tomcat, archivos conf, etc.

about 4 years ago · Santiago Trujillo Denunciar

0

Aunque esto es bastante tarde, quería dejar mis 2 centavos.

Llevé esta solución al siguiente nivel mediante la creación de un sistema de integración continua de muestra que implementa wars en docker tomcat simplemente ejecutando mvn clean install a través del IDE del proyecto mientras se ejecuta el contenedor docker tomcat.

  • Esto resuelve el problema de tener que reiniciar tomcat-container cada vez que hay una nueva compilación disponible. Aprovecha la implementación automática de tomcat
  • Utiliza un volumen compartido para que pueda implementar varias guerras en el volumen compartido y un script recoge sus guerras y las implementa en las aplicaciones web de Tomcat.
  • Viene con un usuario estándar 'admin' para acceder a la GUI del administrador.
  • Disponible en el repositorio docker público: docker run -p 8080:8080 -d --name tom -v <YOUR_VOLUME>:/usr/local/stagingwebapps wintersoldier/tomcat_ci:1.0
  • Recoge cualquier archivo de guerra que se haya dejado caer en el volumen compartido y los implementa instantáneamente en el servidor tomcat con una opción para implementarlo también a través de la GUI
  • Aquí hay una aplicación de muestra con los cambios maven requeridos y el archivo docker para explorar
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda