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/03 21:44] 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 243: | Línea 252: | ||
/app | /app | ||
facturas.jar | facturas.jar | ||
- | /compilador | + | /compilar |
/volumes | /volumes | ||
/app | /app | ||
Línea 249: | Línea 258: | ||
/src | /src | ||
/scripts | /scripts | ||
+ | /target | ||
+ | / | ||
/build | /build | ||
Dockerfile | Dockerfile | ||
/src | /src | ||
+ | /root | ||
+ | /.m2 | ||
+ | settings.xml | ||
/opt | /opt | ||
/java | /java | ||
Línea 260: | Línea 274: | ||
- | | + | ==== Compilar ==== |
- | < | + | Vamos a crea una imagen de Docker con lo siguiente para poder compilar aplicaciones Java: |
+ | | ||
+ | * Maven | ||
+ | * NodeJS | ||
+ | * sass | ||
+ | |||
+ | |||
+ | |||
+ | * Fichero '' | ||
+ | < | ||
FROM ubuntu: | FROM ubuntu: | ||
Línea 277: | 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 286: | 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 312: | Línea 320: | ||
CMD [" | CMD [" | ||
</ | </ | ||
+ | * Fichero '' | ||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | xmlns: | ||
+ | xsi: | ||
+ | http:// | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
* Ejecutarlo todo: | * Ejecutarlo todo: | ||
Línea 324: | Línea 350: | ||
| | ||
| | ||
+ | -u $(id -u):$(id -g) \ | ||
| | ||
</ | </ | ||
Línea 332: | 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 ===== |