Programación

1º DAM/DAW - Curso 2023-2024

User Tools

Site Tools


apuntes:tomcat-deploy

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
apuntes:tomcat-deploy [2023/10/22 16:45] Santiago Faciapuntes:tomcat-deploy [2024/03/30 20:00] (current) – [Desplegar utilizando Docker Compose] Santiago Faci
Line 1: Line 1:
-==== Despliegue de aplicaciones web ====+====== Despliegue de aplicaciones web ====== 
 + 
 +===== Desplegar localmente en tomcat =====
  
 Para desplegar aplicaciones web utilizaremos los siguientes plugins de maven: Para desplegar aplicaciones web utilizaremos los siguientes plugins de maven:
  
-//maven-war-plugin//: Nos permite empaquetar nuestra aplicación web como un fichero war +  * //maven-war-plugin//: Nos permite empaquetar nuestra aplicación web como un fichero war 
-//tomcat7-maven-plugin//: Nos permitirá, con una simple configuración en nuestro fichero ''pom.xml'', disponer de una serie de comandos para desplegar, replegar y redesplegar nuestra aplicación web.+  //tomcat7-maven-plugin//: Nos permitirá, con una simple configuración en nuestro fichero ''pom.xml'', disponer de una serie de comandos para desplegar, replegar y redesplegar nuestra aplicación web.
  
 Para ello, necesitamos añadir el siguiente bloque a nuestro fichero ''pom.xml''. Con ello, añadimos ambos plugins y, en concreto para //tomcat7-maven-plugin//, añadimos algunos valores que permite indicar dónde se encuentra nuestro tomcat y el usuario y contraseña con el que podremos desplegar la aplicación: Para ello, necesitamos añadir el siguiente bloque a nuestro fichero ''pom.xml''. Con ello, añadimos ambos plugins y, en concreto para //tomcat7-maven-plugin//, añadimos algunos valores que permite indicar dónde se encuentra nuestro tomcat y el usuario y contraseña con el que podremos desplegar la aplicación:
- url: La url al manager de consola para el despliegue (el host y puerto dependerán de lo que hayamos configurado en tomcat, aunque por defecto éstos serán los valores adecuados) +  * url: La url al manager de consola para el despliegue (el host y puerto dependerán de lo que hayamos configurado en tomcat, aunque por defecto éstos serán los valores adecuados) 
- server: El nombre asignado al servidor tomcat. Podemos asignar el valor que queramos +  server: El nombre asignado al servidor tomcat. Podemos asignar el valor que queramos 
- path: La ruta en la que hemos definido nuestra aplicación. Se corresponde con el valor que hemos asignado al fichero ''webapp/META-INF/context.ml'' en la línea ''<Content path="/taller"/>'' +  path: La ruta en la que hemos definido nuestra aplicación. Se corresponde con el valor que hemos asignado al fichero ''webapp/META-INF/context.ml'' en la línea ''<Content path="/taller"/>'' 
- username: El usuario que hemos configurado en tomcat (Más detalles en [[apuntes:tomcat|la configuración básica de Tomcat]]) +  username: El usuario que hemos configurado en tomcat (Más detalles en [[apuntes:tomcat#configuracion_basica|la configuración básica de Tomcat]]) 
- password: La contraseña que hemos configurado en tomcat (Más detalles [[apuntes:tomcat|la configuración básica de Tomcat]])+  password: La contraseña que hemos configurado en tomcat (Más detalles [[apuntes:tomcat#configuracion_basica|la configuración básica de Tomcat]])
  
 <code xml> <code xml>
Line 59: Line 61:
 <code bash> <code bash>
 santi@zenbook:$ mvn tomcat7:redeploy santi@zenbook:$ mvn tomcat7:redeploy
 +</code>
 +
 +===== Desplegar utilizando Docker =====
 +
 +==== Crear la imagen de nuestra aplicación web ====
 +
 +<file bash Dockerfile>
 +FROM tomcat:9.0.58-jdk17-openjdk-slim
 +ADD ./target/ParqueNaturalApp /usr/local/tomcat/webapps/webapp
 +CMD ["catalina.sh", "run"]
 +</file>
 +
 +Crear la imagen:
 +
 +<code bash>
 +santi@zenbook:$ docker build -t webapp .
 +</code>
 +==== Desplegar utilizando Docker Compose ====
 +
 +El primer paso será crear, dentro del proyecto, un fichero donde definir las variables de aplicación que necesitemos. Eso se hace, habitualmente, creando un fichero ''.env'' donde, en este caso, definiremos valores como usuario, contraseña, base de datos y puerto donde MySQL escucha, asi como el puerto que queremos que utilice Tomcat.
 +
 +<file bash .env>
 +MYSQL_USER=test
 +MYSQL_PASSWORD=test
 +MYSQL_DATABASE=test
 +MYSQL_PORT=3306
 +
 +TOMCAT_PORT=8080
 +</file>
 +
 +A continuación crearemos el fichero ''docker-compose.yaml'' donde definiremos los dos servicios que necesitamos: nuestra aplicación web (utilizando la imagen que ya hemos creado) y un servidor MySQL.
 +
 +<file bash docker-compose.yaml>
 +version: "3.4"
 +name: parquenatural-webapp
 +services:
 +  mysql:
 +    image: mysql:8.0.33-debian
 +    container_name: mysql
 +    restart: unless-stopped
 +    env_file: ./.env
 +    environment:
 +      MYSQL_DATABASE: $MYSQL_DATABASE
 +      MYSQL_USER: $MYSQL_USER
 +      MYSQL_PASSWORD: $MYSQL_PASSWORD
 +      MYSQL_ROOT_PASSWORD: $MYSQL_PASSWORD
 +    ports:
 +      - $MYSQL_PORT:$MYSQL_PORT
 +    volumes:
 +      - db:/var/lib/mysql
 +    networks:
 +      - network1
 +  app:
 +    image: parquenatural
 +    container_name: parquenatural
 +    env_file: ./.env
 +    ports:
 +      - $TOMCAT_PORT:$TOMCAT_PORT
 +    depends_on:
 +      - mysql
 +    restart: on-failure
 +    networks:
 +      - network1
 +volumes:
 +  db:
 +networks:
 +  network1:
 +    name: parquenatural
 +</file>
 +
 +Para poner en marcha ambos contenedores:
 +
 +<code bash>
 +santi@zenbook:$ docker compose up -d
 </code> </code>
  
apuntes/tomcat-deploy.1697993113.txt.gz · Last modified: 2023/10/22 16:45 by Santiago Faci