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

Next revision
Previous revision
apuntes:tomcat-deploy [2023/06/03 18:58] – created 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: 
 + 
 +  * //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. 
 + 
 +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) 
 +  * 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"/>'' 
 +  * 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#configuracion_basica|la configuración básica de Tomcat]])
  
 <code xml> <code xml>
Line 19: Line 33:
                     <configuration>                     <configuration>
                         <url>http://localhost:8080/manager/text</url>                         <url>http://localhost:8080/manager/text</url>
-                        <server>tomcat18</server>+                        <server>tomcat8</server>
                         <path>/taller</path>                         <path>/taller</path>
                         <username>tomcat</username>                         <username>tomcat</username>
Line 47: 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.1685818722.txt.gz · Last modified: 2023/06/03 18:58 by Santiago Faci