Herramientas de usuario

Herramientas del sitio


clase:daw:daw:2eval:tema08

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
clase:daw:daw:2eval:tema08 [2024/02/03 23:10]
admin [Proxy con Nginx]
clase:daw:daw:2eval:tema08 [2024/02/16 10:24] (actual)
admin [Gestión de Redes]
Línea 14: Línea 14:
 El comando ''docker build'' se utiliza para construir imágenes de contenedor Docker a partir de un Dockerfile. A continuación se presentan las principales características y uso de este comando. El comando ''docker build'' se utiliza para construir imágenes de contenedor Docker a partir de un Dockerfile. A continuación se presentan las principales características y uso de este comando.
  
-<shx>+<sxh>
   docker build -t nombre_imagen:etiqueta ruta_del_dockerfile   docker build -t nombre_imagen:etiqueta ruta_del_dockerfile
-</shx>+</sxh>
  
 Donde: Donde:
Línea 23: Línea 23:
  
   * Ejemplo de uso: Crea la imagen llamada ''mi_aplicacion_web:1.0'' sabiendo que el fichero ''Dockerfile'' está en la carpeta actual.   * Ejemplo de uso: Crea la imagen llamada ''mi_aplicacion_web:1.0'' sabiendo que el fichero ''Dockerfile'' está en la carpeta actual.
-<shx>+<sxh>
 docker build -t mi_aplicacion_web:1.0 . docker build -t mi_aplicacion_web:1.0 .
-</shx>+</sxh>
  
  
-===== Estructura Básica del Dockerfile =====+==== Estructura Básica del Dockerfile ====
 Un Dockerfile contiene instrucciones para la construcción de una imagen. Aquí se muestra una estructura básica: Un Dockerfile contiene instrucciones para la construcción de una imagen. Aquí se muestra una estructura básica:
  
Línea 44: Línea 44:
 # Expone un puerto en el contenedor # Expone un puerto en el contenedor
 EXPOSE puerto EXPOSE puerto
 +
 +#El directorio de trabajo
 +WORKDIR /directorio
  
 # Define variables de entorno # Define variables de entorno
Línea 58: Línea 61:
  
 <sxh> <sxh>
-# Comentario: Descripción del propósito de la imagen +FROM eclipse-temurin:17.0.10_7-jdk
-FROM imagen_base:version  # Especifica la imagen base+
 </sxh> </sxh>
  
Línea 67: Línea 69:
  
 <sxh> <sxh>
-RUN comando1 +RUN mkdir /opt/app
-RUN comando2+
 </sxh> </sxh>
  
Línea 75: Línea 76:
 - **COPY**: Copia archivos desde la ruta de origen en la máquina host hacia el contenedor en la ruta de destino. - **COPY**: Copia archivos desde la ruta de origen en la máquina host hacia el contenedor en la ruta de destino.
 <sxh> <sxh>
-COPY origen destino+COPY /opt/peliculas/target/japp.jar /opt/app
 </sxh> </sxh>
  
Línea 84: Línea 85:
  
 <sxh> <sxh>
-EXPOSE puerto+EXPOSE 8080
 </sxh> </sxh>
  
 +- **WORKDIR**: Establece el directorio de trabajo para cualquier instrucción posterior en el Dockerfile.
  
 +<sxh>
 +WORKDIR /opt/app
 +</sxh>
  
 - **ENV**: Define variables de entorno dentro del contenedor. - **ENV**: Define variables de entorno dentro del contenedor.
  
 <sxh> <sxh>
-ENV variable=valor+ENV ENTORNO=produccion
 </sxh> </sxh>
  
Línea 100: Línea 105:
  
 <sxh> <sxh>
-CMD ["comando", "argumento"]+CMD ["java", "-jar","/opt/app/japp.jar"]
 </sxh> </sxh>
  
Línea 108: Línea 113:
 </note> </note>
  
 +==== Ejemplo: Ejecutar app java ====
 +  * Una imagen basada en el JDK 17 
 +  * Copia el fichero de la máquina real que está en ''/opt/peliculas/target/japp.jar'' dentro de loa imagen en la carpeta ''/opt/app''
 +  * Ejecuta el japp.jar
  
- +<sxh base> 
-===== Gestión de Redes ===== +FROM eclipse-temurin:17.0.10_7-jdk 
-Docker permite crear redes aisladas entre los distintos contenedores. De esa forma , si un contenedor es atacado, no se tendrá acceso por red al resto de los contenedores sino únicamente a los de su propia red. +RUN mkdir /opt/app 
- +COPY /opt/peliculas/target/japp.jar /opt/app 
-^  Orden  ^  Explicación +CMD ["sh""-c" , "-jar","/opt/app/japp.jar"] 
-| [[https://docs.docker.com/engine/reference/commandline/network_create/|docker network create]] | Crea una red | +</sxh>
-| [[https://docs.docker.com/engine/reference/commandline/network_rm/|docker network rm]] | Borrar una red | +
-| [[https://docs.docker.com/engine/reference/commandline/network_ls/|docker network ls]] | Ver las redes que hay | +
-| [[https://docs.docker.com/engine/reference/commandline/network_connect/|docker network connect]] | Conecta un contenedor a una red | +
-[[https://docs.docker.com/engine/reference/commandline/network_disconnect/|docker network disconnect]] | Desconecta un contenedor de una red | +
- +
- +
-Para trabajar con redeslo que debemos hacer es +
- +
-  * Primero crear la red: +
- +
-  docker network create nombreDeLaRed +
- +
-  * Conectar un contenedor a esa red +
- +
-  docker network connect nombreDeLaRed nombreDelContenedor +
- +
-  * También podemos conectar la red al contenedor al usar ''docker container run'' con la opción ''--network=nombreDeLaRed'' +
- +
-  docker container run \ +
-   -dit \ +
-   -v /opt/mariadb:/var/lib/mysql +
-   -e MYSQL_ROOT_PASSWORD=root +
-   -p 4000:3306 +
-   --network=nombreDeLaRed \ +
-   --name  prueba_mariadb \ +
-   mariadb:10.1 +
- +
-\\ +
-\\ +
-\\+
  
  
 ===== Docker Compose ===== ===== Docker Compose =====
-Docker Compose es una herramienta que permite definir y administrar aplicaciones Docker de múltiples contenedores. Utiliza un archivo YAML para configurar los servicios, las redes y los volúmenes, facilitando la definición y el despliegue de aplicaciones complejas.+Docker Compose es una herramienta que permite definir y administrar aplicaciones Docker de múltiples contenedores. Utiliza un archivo [[https://es.wikipedia.org/wiki/YAML|YAML]] para configurar los servicios, las redes y los volúmenes, facilitando la definición y el despliegue de aplicaciones complejas.
  
 ==== Estructura Básica de un archivo docker-compose.yml ==== ==== Estructura Básica de un archivo docker-compose.yml ====
  
-Un archivo `docker-compose.ymldefine la configuración de una aplicación multi-contenedor. Aquí se presentan las secciones principales:+Un archivo ''docker-compose.yml'' define la configuración de una aplicación multi-contenedor. Aquí se presentan las secciones principales:
  
 <sxh> <sxh>
Línea 176: Línea 155:
 ==== Comandos Básicos de Docker Compose ==== ==== Comandos Básicos de Docker Compose ====
  
-  - Iniciar la aplicación basada en la configuración de `docker-compose.yml`.+  - Iniciar la aplicación basada en la configuración de ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 182: Línea 161:
 </sxh> </sxh>
  
-  - Detener y eliminar los contenedores definidos en el archivo `docker-compose.yml`.+  - Detener y eliminar los contenedores definidos en el archivo ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 188: Línea 167:
 </sxh> </sxh>
  
-- Muestra el estado de los contenedores definidos en el archivo `docker-compose.yml`.+- Muestra el estado de los contenedores definidos en el archivo ''docker-compose.yml''.
  
 <sxh bash> <sxh bash>
Línea 196: Línea 175:
 ==== Ejemplo de Uso ==== ==== Ejemplo de Uso ====
  
-Supongamos un archivo `docker-compose.ymlpara una aplicación web con un servicio de frontend y otro de base de datos:+Supongamos un archivo ''docker-compose.yml'' para una aplicación web con un servicio de frontend y otro de base de datos:
  
 <sxh> <sxh>
Línea 236: Línea 215:
  
  
 +===== Gestión de Redes =====
 +Docker permite crear redes aisladas entre los distintos contenedores. De esa forma , si un contenedor es atacado, no se tendrá acceso por red al resto de los contenedores sino únicamente a los de su propia red.
  
 +^  Orden  ^  Explicación  ^
 +| [[https://docs.docker.com/engine/reference/commandline/network_create/|docker network create]] | Crea una red |
 +| [[https://docs.docker.com/engine/reference/commandline/network_rm/|docker network rm]] | Borrar una red |
 +| [[https://docs.docker.com/engine/reference/commandline/network_ls/|docker network ls]] | Ver las redes que hay |
 +| [[https://docs.docker.com/engine/reference/commandline/network_connect/|docker network connect]] | Conecta un contenedor a una red |
 +| [[https://docs.docker.com/engine/reference/commandline/network_disconnect/|docker network disconnect]] | Desconecta un contenedor de una red |
  
  
 +Para trabajar con redes, lo que debemos hacer es
  
 +  * Primero crear la red:
  
 +  docker network create nombreDeLaRed
  
-===== Ejercicios =====+  * Conectar un contenedor a esa red
  
 +  docker network connect nombreDeLaRed nombreDelContenedor
  
-<note important>Para hacer estos ejercicios debe crearse antes la red "prueba_red"</note>+  * También podemos conectar la red al contenedor al usar ''docker container run'' con la opción ''--network=nombreDeLaRed''
  
 +  docker container run \
 +   -dit \
 +   -v /opt/mariadb:/var/lib/mysql  \
 +   -e MYSQL_ROOT_PASSWORD=root  \
 +   -p 4000:3306  \
 +   --network nombreDeLaRed \
 +   --name  prueba_mariadb \
 +   mariadb:10.1
  
-<note important>Para la página PHP que se conectará la MySQL se puede usar el siguiente código: {{ :clase:daw:daw:2eval:ejemplo_php.zip |ejemplo_php.zip}}</note>+\\ 
 +\\ 
 +\\
  
-==== Ejercicio 1 ==== 
-Crea un contenedor llamado "maria_a" que sean de MariaDB: 
-  * Crea la table "info" con una columna llamada "nombre" y añade una fila con el valor "soy la base de datos A" 
-  * Su puerto externo es el 2010 
-  * Conectado a la red "prueba_red" 
-  * Que el nombre del host sea "maria_a" 
  
-\\+===== Proxy con Nginx ===== 
 +¿Recuerdas la cabecera ''Host'' de HTTP? Servía para indicar a que //servidor web// iba dirigida la petición ya que en una misma máquina se ponían varios servidores web.
  
-Crea un contenedor llamado "maria_b" que sean de MariaDB: +Pues vamos ahora a configurar Docker para que todos los servidores compartan el mismo puerto (el 80). Para ello vamos usar un servidor proxy llamado Nginx. Obviamente, Nginx va estar dentro de otro contenedor de Docker. La imagen a usar es [[https://hub.docker.com/r/jwilder/nginx-proxy|jwilder/nginx-proxy con tag 0.7.0]].
-  * Crea la table "info" con una columna llamada "nombre" y añade una fila con el valor "soy la base de datos B" +
-  * Su puerto externo es el 2020 +
-  * Conectado la red "prueba_red" +
-  * Que el nombre del host sea "maria_b"+
  
-==== Ejercicio 2 ==== +Para arrancar el servidor usamos la siguiente orden:
-Crea un contenedores llamado "apache_a" que sean del servidor web Apache con PHP: +
-  * Crea una página llamada index.php que +
-    * Se conecte a la base de datos llamada "maria_a" ,que hemos creado antes y que muestre los datos de alguna fila de la tabla "peliculas" +
-    * Incluya un título llamado "Soy el servidor Web A" +
-    * Su puerto externo es el 3010 +
-    * Utiliza el fichero ''.env'' para guardar los datos de conexión a la base de datos +
-    * Conectado a la red "prueba_red"+
  
-<note tip>En vez de crear tu el código PHP puedes usar el siguiente:{{ :clase:daw:daw:2eval:ejemplo_php.zip |}}</note>+  sudo docker container run \ 
 +    -dit \ 
 +    -p 80:80 \ 
 +    --restart always \ 
 +    -v /var/run/docker.sock:/tmp/docker.sock:ro \ 
 +    --name nginx-proxy \ 
 +    nginxproxy/nginx-proxy:1.1.0  
 +    
  
 +   
 +    
 +
 +Como vemos no tiene nada de especial excepto la línea ''-v /var/run/docker.sock:/tmp/docker.sock:ro'' pero solo decir que es para que Nginx pueda acceder al Docker real de la máquina real.
 +
 +Y ahora , ¿Como arrancamos nuestro servidores web? Pues simplemente hay que añadir dos parámetros y quitar uno.
 +  * Y hay que quitar el parámetro de ''-p puertoExterno:puertoInterno'' ya que ahora el contenedor no se va a exponer al exterior. 
 +  * Hay que añadir:
 +    * ''-e VIRTUAL_PORT=puertoInterno'': Siendo **puertoInterno** donde está escuchando nuestro servidor Web. Esa información la sabremos por la documentación 
 +    * ''-e VIRTUAL_HOST=nombreDominio'': Siendo **nombreDominio** el nombre del dominio que queremos que gestione el servidor que estamos arrancando.
 +
 +Veamos el siguiente ejemplo:
 +
 +  sudo docker container run \
 +    -dit \
 +    -v /home/alumno/lorenzo/httpd:/var/www/html \
 +    -e VIRTUAL_PORT=80
 +    -e VIRTUAL_HOST=lorenzo.daw2.pve3.fpmislata.com  \
 +    --name lorenzo_apache \
 +    php:8.1-apache-bullseye
 +
 +Vemos que el servidor está escuchando en el puerto 80 y va a gestionar las peticiones del dominio //lorenzo.daw2.pve3.fpmislata.com// que lleguen a Nginx.
 +
 +
 +<note tip>Los servidores de Base de datos u otros contenedores que no son el servidor web no tienen que hacer nada especial por usar Nginx ya que no se accede a ellos a través del proxy sino directamente a ellos o únicamente de forma interna.</note>
 +
 +
 +Mas información:
 +    * [[https://cloud.google.com/community/tutorials/nginx-reverse-proxy-docker|Running an NGINX Reverse Proxy with Docker and Let's Encrypt on Google Compute Engine]]
 +    * [[http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/|Automated Nginx Reverse Proxy for Docker]]
 +    * [[https://tevinjeffrey.me/how-to-setup-nginx-proxy-and-lets-encrypt-with-docker/|How to setup NGINX with automatic HTTPS in Docker]]
 +    * [[https://medium.com/@francoisromain/host-multiple-websites-with-https-inside-docker-containers-on-a-single-server-18467484ab95|Host multiple websites with HTTPS on a single server]]
 +
 +
 +
 +==== El fichero hosts ====
 +Ahora para que funcione el proxy con nginx ya no podemos acceder a la máquina real con la IP sino que habrá que usar el nombre de dominio. Si no tenemos acceso a un nombre de dominio real, podemos simular nosotros uno modificando el fichero ''hosts'' de la máquina donde vayamos a hacer la petición.
 +
 +El fichero hosts simplemente contiene IPs y nombre e dominio que usará nuestro ordenador. De esa forma simularemos tener un dominio.
 +
 +En los siguientes artículos se explica como modificar el fichero hosts
 +  * [[https://es.wikipedia.org/wiki/Archivo_hosts|Archivo hosts]]
 +  * [[https://www.siteground.es/kb/archivo-hosts/|¿Cómo se usa el archivo “hosts”?]]
 +
 +
 +
 +\\
 +\\
 \\ \\
  
-Crea un contenedores llamado "apache_b" que sean del servidor web Apache con PHP: 
-  * Crea una página llamada index.php que 
-    * Se conecte a una de las bases de datos "maria_b" que hemos creado antes y que muestre los datos de alguna fila de la tabla "peliculas" 
-    * Incluya un título llamado "Soy el servidor Web B" 
-    * Su puerto externo es el 3020 
-    * Utiliza el fichero ''.env'' para guardar los datos de conexión a la base de datos 
-    * Conectado a la red "prueba_red" 
  
-<note tip>En vez de crear tu el código PHP puedes usar el siguiente:{{ :clase:daw:daw:2eval:ejemplo_php.zip |}}</note> 
  
-==== Ejercicio 3 ==== 
-Modifica únicamente el fichero ''.env'' de cada servidor para que ahora se conecten a la otra base de datos. Deberá funcionar todo sin problemas. 
  
-Vuelve a dejar las conexiones como estaban antes del ejercicio. 
  
-==== Ejercicio 4 ==== 
-Crea ahora dos redes llamadas: 
-  * red_a 
-  * red_b 
  
-Vuelve a crear los 4 contenedores de antes pero de forma que cada uno esté asociado a una red distinta. 
  
-^ Contenedor ^ Red ^ 
-| apache_a | red_a | 
-| maria_a | red_a | 
-| apache_b | red_b | 
-| maria_b | red_b | 
  
  
-Prueba que los 2 servidores web siguen funcionando y accediendo a sus bases de datos correspondientes.+===== Ejercicios =====
  
-==== Ejercicio ==== +==== Ejercicio 1:Crear la imagen ==== 
-Modifica únicamente el fichero ''.env'' de cada servidor para que ahora se conecten a la otra base de datos. **No deberán poder conectarse**+Crea una imagen de docker basada en ''eclipse-temurin:17.0.10_7-jdk'' que haga lo siguiente: 
 +  Con ''RUN'':Crear el directorio ''/opt/app''.  
 +  Con ''CMD'':Que ejecute un jara llamado ''japp.jar''
  
-Vuelve a dejar las conexiones como estaban antes del ejercicio, es decir todas conectadas a "prueba_red". 
  
-==== Ejercicio 6 ==== 
-Hasta ahora para acceder a cada servidor web usabas los puertos ''3010'' y ''3020''. Vamos ahora a usar el servidor Proxy Nginx para que a ambos se pueda acceder por nombre de dominio y todos por el puerto 80. Para ello ya no vamos a usar nuestra máquina sino que vamos a usar la máquina que nos proporciona el centro, a la que nos tenemos que conectar por VPN.  En esa máquina ya hemos instalado Nginx como proxy. 
  
-En esa máquina haz lo siguiente+La imagen se llamará ''tu-nombre-java-app''.
  
-  * Crear un contenedor "apache_**tuNombre**"  +Crea un contenedor con esa imagen de forma que con ''-v'' esté el ''japp.jar'' en ''/opt/app''
-    * Indicando que la variable de entorno ''VIRTUAL_HOST'' vale "**tuNombre**.daw2.pve2.fpmislata.com" +
-    * Indicando que la variable de entorno ''VIRTUAL_PORT'' vale "80"  +
-    * Deberás incluir el proyecto de PHP que permitía acceder a la base de datos +
-    * Que la carpeta compartida esté en ''/opt/tuNombre/docker/apache'' +
-    * El código fuente de PHP lo copias en ''/opt/tuNombre/docker/apache'' +
-  * Crear un contenedor "mariadb_**tuNombre**" +
-    * En la base de datos crea la tabla y los datos que necesites. +
-    * Que la carpeta compartida esté en ''/opt/tuNombre/docker/mariadb''+
  
-Prueba a navegar la siguientes url (y deberá funcionar): 
-  * <nowiki>http://tuNombre.daw2.pve2.fpmislata.com</nowiki> 
  
 +==== Ejercicio 2:Sin crear imagen ====
 +En la imagen ''eclipse-temurin:17.0.10_7-jdk'' ya existe la carpeta ''/tmp'' y en ''docker container run'' se puede poner al final de la línea la orden a ejecutar.
 +
 +Así que ejecuta un ''jar'' de la siguiente manera:
 +
 +<sxh base>
 +sudo docker container run \
 + -v /mi-proyecto/target:/tmp \
 + eclipse-temurin:17.0.10_7-jdk \
 + java -jar /tmp/mi.jar
 +</sxh>
 +
 +<note important>
 +En la orden ''docker container run'' faltan más parámetros que hay que añadir.
 +</note>
 +
 +==== Ejercicio 3:Maven ====
 +Ahora vamos a generar el ''jar'' en base al código fuente, para ello vamos a usar una imagen que ya tiene ''maven'' instalado: [[https://hub.docker.com/_/maven|Docker image maven]] y concretamente  ''maven:3.9.6-eclipse-temurin-17''.
 +
 +
 +Para hacerlo hay que poner el código fuente en ''/usr/src/mymaven'' y especificar que el directorio de trabajo será ese, para ello usaremos el argumento ''-w''. Al final del todo indicaremos la orden de maven a ejecutar.
 +
 +<sxh base>
 +sudo docker container run \
 + -v /mi-proyecto:/usr/src/mymaven \
 + -w /usr/src/mymaven \
 + maven:3.9.6-eclipse-temurin-17 \
 + mvn clean package
 +</sxh>
 +
 +
 +<note important>
 +En la orden ''docker container run'' faltan más parámetros que hay que añadir.
 +</note>
 +
 +<note tip>
 +¿Que opciones usarás?
 +  * ''-d''
 +  * ''-i''
 +  * ''-t''
 +  * ????
 +</note>
 +
 +
 +==== Ejercicio 4:Deploy ====
 +Has un script en la máquina real llamado ''deploy.sh'' que haga lo siguiente:
 +  * Se baje el código fuente de git
 +  * Genere el ''jar'' pero se ejecutará maven dentro del contenedor de docker cuya imagen es: ''maven:3.9.6-eclipse-temurin-17''
 +  * Ejecute el ''jar''  dentro del contenedor de docker cuya imagen es: ''eclipse-temurin:17.0.10_7-jdk''
 +
 +==== Ejercicio 5:MySQL ====
 +Crea ahora una base de datos MySQL en un contenedor docker de forma que sea la que estás usando en el módulo de servidor.
 +Rellena la base de datos con los datos.
 +
 +==== Ejercicio 6:Deploy proyecto ====
 +Compila y desplega el proyecto que usas en el módulo de servidor de forma que se genere el ''jar'' en un contenedor de  docker y se ejecute en un contenedor de  docker. Este último contenedor deberá conectarse al contenedor de MySQL que has creado.
 +
 +
 +==== Ejercicio 7:Deploy proyecto ====
 +Modifica el proyecto de Maven de forma que tambien se haga lo necesario para "compilar" la parte de Angular. Esa parte la vimos en el tema 3 en el apartado de [[clase:daw:daw:1eval:tema03#maven]]
 +
 +
 +
 +<note tip>
 +Hasta aquí han sido los ejercicios para el despliegue automático, ahora vamos a mejorar cuestiones relacionadas con Docker.
 +</note>
  
-==== Ejercicio ==== +==== Ejercicio 8: MySQL compañero ==== 
-Crea un proyecto Web en GitHub llamado "ejemplodaw" en los que haya lo siguiente: +Prueba ahora a modificaar el código de forma que te conectes al MySQL de tu compañero. Deberá dejarte.
-  * Código PHP +
-  * Código SASS +
-  * Muestre desde PHP información de la base de datos.+
  
-El proyecto es similar al anterior solo que ahora también hay código SASS.  
  
-Incluye en el proyecto un script de bash llamado ''deploy.sh'' para desplegar el proyecto en docker. El script se ejecutará con ''npm run deploy''El script hará lo siguiente: +==== Ejercicio 9:Red ==== 
-  * Copiar el código de ''src'' a ''dist'' +Crea ahora una red llamada ''mi-nombre-mi-proyecto''.
-  * Compilar en ''dist'' el código SASS +
-  * Borrar los contenedores de Docker que vaya a crear (por si ya existen), que son "apache_**tuNombre**" y "mariadb_**tuNombre**" +
-  * Copiar el contenido de la carpeta ''dist'' a ''/opt/tuNombre/docker/apache'' +
-  * Crear el contenedor de Docker del servidor Web "apache_**tuNombre**" +
-  * Crear el contenedor de Docker de la base de datos "mariadb_**tuNombre**"+
  
 +Modifica la creación de los contenedores para que estén asociados a la red que acabas de crear.
  
-En la máquina real ves a la carpeta ''/opt/tuNombre'' y haz un git clone del proyecto que acabas de crear en GitHub. Se creará la carpeta ''/opt/tuNombre/ejemplodaw''.+Prueba que todo sigue funcionando.
  
 +==== Ejercicio 10: MySQL compañero ====
 +Prueba ahora a modificaar el código de forma que te conectes al MySQL de tu compañero. No debería dejarte ya que estáis en redes distintas.
  
  
-Para probar que todo funciona haz cambios en el SASS en master , súbelos a GitHub y ejecuta dentro de la máquina Linux lo siguiente:+==== Ejercicio 11: Docker compose ==== 
 +Modifica el script ''deploy.sh'' de forma que en vez de crear directamente los 2 contenedores de MySQL y Java se use  ''docker compose up''.
  
-  cd /opt/tuNombre/ejemplodaw +Para ello deberás crear un fichero llamado ''docker-compose.yml''
-  git fetch --prune --force +
-  git checkout master +
-  git merge --ff-only origin/master +
-  npm run deploy+
  
  
-Prueba a navegar a <nowiki>http://tuNombre.daw2.pve2.fpmislata.com</nowiki>  y se verán los cambios. 
  
clase/daw/daw/2eval/tema08.1706998207.txt.gz · Última modificación: 2024/02/03 23:10 por admin