Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisión Ambos lados, revisión siguiente | ||
clase:daw:daw:2eval:tema08 [2024/02/04 11:36] admin [Creación de imágenes] |
clase:daw:daw:2eval:tema08 [2024/02/04 13:30] admin [Ejercicios] |
||
---|---|---|---|
Línea 125: | Línea 125: | ||
</ | </ | ||
- | ==== Ejemplo: Compilar con maven ==== | ||
- | |||
- | |||
- | <sxh base> | ||
- | FROM maven: | ||
- | |||
- | RUN mkdir / | ||
- | WORKDIR / | ||
- | |||
- | |||
- | RUN echo "git clone https:// | ||
- | RUN echo "cd prueba_spring" | ||
- | RUN echo "mvn dependency: | ||
- | RUN echo "mvn clean" >> / | ||
- | RUN echo "mvn clean package" | ||
- | RUN chmod ugo+x build.sh | ||
- | |||
- | |||
- | CMD [" | ||
- | </ | ||
===== Docker Compose ===== | ===== Docker Compose ===== | ||
Línea 348: | Línea 328: | ||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
+ | ==== Ejercicio 1:Crear la imagen ==== | ||
+ | Crea una imagen de docker basada en '' | ||
+ | * Con '' | ||
+ | * Con '' | ||
- | <note important> | ||
- | <note important> | + | La imagen |
- | ==== Ejercicio 1 ==== | + | Crea un contenedor |
- | Crea un contenedor | + | |
- | * Crea la table " | + | |
- | * Su puerto externo es el 2010 | + | |
- | * Conectado a la red " | + | |
- | * Que el nombre del host sea " | + | |
- | \\ | ||
- | Crea un contenedor llamado " | + | ==== Ejercicio 2:Sin crear imagen ==== |
- | * Crea la table " | + | En la imagen '' |
- | * Su puerto externo es el 2020 | + | |
- | * Conectado | + | |
- | * Que el nombre del host sea " | + | |
- | ==== Ejercicio 2 ==== | + | Así que ejecuta |
- | Crea un contenedores llamado " | + | |
- | * Crea una página llamada index.php que | + | |
- | * Se conecte a la base de datos llamada " | + | |
- | * Incluya | + | |
- | * Su puerto externo es el 3010 | + | |
- | * Utiliza el fichero | + | |
- | * Conectado a la red " | + | |
- | <note tip>En vez de crear tu el código PHP puedes usar el siguiente:{{ :clase: | + | <sxh base> |
+ | sudo docker container run \ | ||
+ | -v / | ||
+ | eclipse-temurin:17.0.10_7-jdk \ | ||
+ | java -jar /tmp/mi.jar | ||
+ | </sxh> | ||
- | \\ | + | <note important> |
+ | En la orden '' | ||
+ | </ | ||
- | Crea un contenedores llamado " | + | ==== Ejercicio 3:Maven ==== |
- | * Crea una página llamada index.php que | + | Ahora vamos a generar el '' |
- | * Se conecte | + | |
- | * Incluya un título llamado "Soy el servidor Web B" | + | |
- | * Su puerto externo es el 3020 | + | |
- | * Utiliza el fichero | + | |
- | * Conectado a la red " | + | |
- | <note tip>En vez de crear tu el código PHP puedes usar el siguiente: | ||
- | ==== Ejercicio 3 ==== | + | Para hacerlo hay que poner el código fuente en '' |
- | Modifica únicamente | + | |
- | Vuelve a dejar las conexiones como estaban antes del ejercicio. | + | <sxh base> |
- | + | sudo docker run \ | |
- | ==== Ejercicio 4 ==== | + | -v / |
- | Crea ahora dos redes llamadas: | + | -w / |
- | * red_a | + | maven: |
- | * red_b | + | mvn clean package |
- | + | </ | |
- | 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 | | ||
+ | <note important> | ||
+ | En la orden '' | ||
+ | </ | ||
- | Prueba que los 2 servidores web siguen funcionando y accediendo a sus bases de datos correspondientes. | + | <note tip> |
+ | ¿Que opciones usarás? | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * ???? | ||
+ | </ | ||
- | ==== Ejercicio 5 ==== | ||
- | Modifica únicamente el fichero '' | ||
- | Vuelve a dejar las conexiones como estaban antes del ejercicio, | + | ==== Ejercicio 4:Deploy ==== |
+ | Has un script en la máquina real llamado '' | ||
+ | * Se baje el código fuente de git | ||
+ | * Genere el '' | ||
+ | * Ejecute el '' | ||
- | ==== Ejercicio | + | ==== Ejercicio |
- | Hasta ahora para acceder a cada servidor web usabas los puertos '' | + | Crea ahora una base de datos MySQL en un contenedor docker |
+ | Rellena | ||
- | En esa máquina haz lo siguiente | + | ==== Ejercicio 6:Deploy proyecto ==== |
+ | Compila y desplega el proyecto que usas en el módulo de servidor de forma que se genere el '' | ||
- | * Crear un contenedor " | ||
- | * Indicando que la variable de entorno '' | ||
- | * Indicando que la variable de entorno '' | ||
- | * Deberás incluir el proyecto de PHP que permitía acceder a la base de datos | ||
- | * Que la carpeta compartida esté en ''/ | ||
- | * El código fuente de PHP lo copias en ''/ | ||
- | * Crear un contenedor " | ||
- | * En la base de datos crea la tabla y los datos que necesites. | ||
- | * Que la carpeta compartida esté en ''/ | ||
- | Prueba a navegar la siguientes url (y deberá funcionar): | ||
- | * < | ||
+ | <note tip> | ||
+ | Hasta aquí han sido los ejercicios para el despliegue automático, | ||
+ | </ | ||
- | ==== Ejercicio 7 ==== | + | ==== Ejercicio 7: MySQL compañero |
- | Crea un proyecto Web en GitHub llamado " | + | 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 | + | ==== Ejercicio 8:Red ==== |
- | * Copiar el código de '' | + | Crea ahora una red llamada |
- | * Compilar en '' | + | |
- | * Borrar los contenedores de Docker que vaya a crear (por si ya existen), que son " | + | |
- | * Copiar el contenido de la carpeta '' | + | |
- | * Crear el contenedor de Docker del servidor Web " | + | |
- | * Crear el contenedor de Docker de la base de datos " | + | |
+ | 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 ''/ | + | Prueba |
+ | ==== Ejercicio 9: 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 | + | ==== Ejercicio 10: Docker compose ==== |
+ | Modifica el script '' | ||
- | cd / | + | Para ello deberás crear un fichero llamado '' |
- | git fetch --prune --force | + | |
- | git checkout master | + | |
- | git merge --ff-only origin/ | + | |
- | npm run deploy | + | |
- | Prueba a navegar a < | ||