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 | ||
clase:daw:daw:2eval:tema08 [2025/02/07 12:55] admin [Docker Compose] |
clase:daw:daw:2eval:tema08 [2025/02/22 14:22] (actual) admin [Creación de imágenes] |
||
---|---|---|---|
Línea 44: | Línea 44: | ||
COPY origen destino | COPY origen destino | ||
- | # Expone un puerto | + | # Documenta que puerto |
EXPOSE puerto | EXPOSE puerto | ||
Línea 78: | Línea 78: | ||
- **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 ./japp.jar /opt/app | + | COPY ./app.jar /opt/app |
</ | </ | ||
Línea 86: | Línea 86: | ||
- | - **EXPOSE**: Informa a Docker que el contenedor escuchará en el puerto especificado en tiempo de ejecución. No publica el puerto en el host. | + | <note important> |
+ | ¿Qué es mejor copiar ficheros dentro con '' | ||
+ | |||
+ | ^ Opción ^ Ventaja | ||
+ | | Copiar ficheros desde fuera con '' | ||
+ | | Descargar ficheros desde el '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | - **EXPOSE**: Informa a Docker que el contenedor escuchará en el puerto especificado en tiempo de ejecución. No publica el puerto en la máquina real ni hace realmente nada. Es simplemente para documentar en que puerto | ||
<sxh> | <sxh> | ||
Línea 92: | Línea 101: | ||
</ | </ | ||
- | - **WORKDIR**: | + | - **WORKDIR**: |
<sxh> | <sxh> | ||
Línea 106: | Línea 115: | ||
- | - **CMD**: Especifica el comando predeterminado que se ejecutará cuando el contenedor se inicie. | + | - **CMD**: Especifica el comando predeterminado que se ejecutará cuando el contenedor se inicie. |
<sxh> | <sxh> | ||
- | CMD [" | + | CMD [" |
</ | </ | ||
Línea 119: | Línea 128: | ||
==== Ejemplo: Ejecutar app java ==== | ==== Ejemplo: Ejecutar app java ==== | ||
* Una imagen basada en el JDK 17 | * Una imagen basada en el JDK 17 | ||
- | * Copia el fichero de la máquina real que está en ''/ | + | * Copia el fichero de la máquina real que está en ''/ |
- | * Ejecuta el japp.jar | + | * Ejecuta el app.jar |
<sxh base> | <sxh base> | ||
FROM eclipse-temurin: | FROM eclipse-temurin: | ||
RUN mkdir /opt/app | RUN mkdir /opt/app | ||
- | COPY / | + | COPY / |
WORKDIR /opt/app | WORKDIR /opt/app | ||
EXPOSE 8080 | EXPOSE 8080 | ||
- | CMD [" | + | CMD [" |
</ | </ | ||
Línea 250: | Línea 259: | ||
/scripts | /scripts | ||
/target | /target | ||
- | / | + | / |
/build | /build | ||
Dockerfile | Dockerfile | ||
/src | /src | ||
+ | /root | ||
+ | /.m2 | ||
+ | settings.xml | ||
/opt | /opt | ||
/java | /java | ||
Línea 262: | Línea 274: | ||
- | | + | ==== Compilar ==== |
+ | Vamos a crea una imagen de Docker con lo siguiente para poder compilar aplicaciones Java: | ||
+ | | ||
+ | * Maven | ||
+ | * NodeJS | ||
+ | * sass | ||
+ | |||
+ | |||
+ | |||
+ | * Fichero '' | ||
<sxh yaml> | <sxh yaml> | ||
FROM ubuntu: | FROM ubuntu: | ||
Línea 279: | Línea 300: | ||
COPY /opt /opt | COPY /opt /opt | ||
+ | |||
+ | |||
# Instalar JDK Temurin desde una carpeta local | # Instalar JDK Temurin desde una carpeta local | ||
Línea 288: | Línea 311: | ||
ENV PATH=" | ENV PATH=" | ||
+ | # Crear un settings.xml básico para maven para que se conecte a los servidores | ||
+ | RUN mkdir -p /root | ||
+ | COPY /root /root | ||
- | |||
- | # Crear un settings.xml básico para evitar mirrors bloqueados | ||
- | RUN mkdir -p /root/.m2 | ||
- | RUN echo '<? | ||
- | < | ||
- | xmlns: | ||
- | xsi: | ||
- | http:// | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | # Borrar la cache de apt porque ya no la necesitamos | ||
- | RUN rm -rf / | ||
WORKDIR /opt/app | WORKDIR /opt/app | ||
Línea 314: | Línea 320: | ||
CMD [" | CMD [" | ||
</ | </ | ||
+ | * Fichero '' | ||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | xmlns: | ||
+ | xsi: | ||
+ | http:// | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
* Ejecutarlo todo: | * Ejecutarlo todo: | ||
Línea 335: | Línea 359: | ||
docker image pull logongas/ | docker image pull logongas/ | ||
</ | </ | ||
+ | |||
+ | Un ejemplo de todo ésto se puede ver en: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
===== Gestión de Redes ===== | ===== Gestión de Redes ===== |