Reto multi stage

Código
Intermedio
Docker
Curso de Docker
5 min
200 XP
Actualizado: 14/08/2025

¡Programa y certifícate!

Asistente de IA
Solución de código
Certificado
Empezar ejercicio

Ejercicio de programación: Reto multi stage

Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en Docker. Es un ejercicio de nivel intermedio que requiere conocimientos sólidos de la tecnología.

Tipo: Ejercicio de código 5 minutos estimados 200 puntos de experiencia

Información adicional del ejercicio

Crear un Dockerfile con multi-stage build para optimizar una aplicación Java 21 Spring Boot con Maven, separando la compilación de la ejecución.

Contenido del ejercicio

Crea el contenido de un Dockerfile que utilice multi-stage build para una aplicación Java 21 Spring Boot con Maven. 

El objetivo es separar el proceso de compilación del runtime final para obtener una imagen optimizada.

Debes crear dos stages:

Stage de build (nómbralo builder):

  • Usa la imagen base maven:3.9-eclipse-temurin-21
  • Establece el directorio de trabajo en /app
  • Copia primero solo pom.xml para aprovechar el cache de Docker
  • Ejecuta mvn dependency:go-offline para descargar dependencias
  • Copia el resto del código fuente
  • Ejecuta mvn clean package -DskipTests para compilar la aplicación

Stage de producción (nómbralo production):

  • Usa la imagen base eclipse-temurin:21-jre-alpine
  • Establece el directorio de trabajo en /app
  • Copia el JAR compilado desde el stage builder ubicado en /app/target/*.jar y renómbralo a app.jar
  • Expone el puerto 8080
  • Define el comando para ejecutar la aplicación: java -jar app.jar

Utiliza la instrucción COPY --from=builder para transferir únicamente el JAR compilado al stage final, manteniendo la imagen de producción ligera sin las herramientas de compilación de Maven.

Lección relacionada

Este ejercicio está relacionado con la lección "Multi-stage Build" de Docker. Te recomendamos revisar la lección antes de comenzar.

Ver lección relacionada

Más ejercicios de Docker

Explora más ejercicios de programación en Docker para mejorar tus habilidades y obtener tu certificación.

Ver más ejercicios de Docker

Solución al ejercicio de programación en Docker

Contenido bloqueado

¡Desbloquea la solución completa!

Completa el ejercicio de programación en Docker para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

Practica con ejercicios de programación en Docker

Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.

Asistente de IA

Aprende de tus errores

Progreso

Mide tu avance

Certificación

Valida tus habilidades

Únete a miles de desarrolladores mejorando sus habilidades en Docker

⭐⭐⭐⭐⭐
4.9/5 valoración