6.1Casos prácticos
Lo esencial en 30 segundos
- Ensamblar : Dockerfile limpio (slim, dependencias primero, non-root), imagen etiquetada 1.0, stack Compose declarativo, persistencia probada, CI como única fábrica.
- Probar : probar en local, hacer que un tercero descargue y lance, probar down/up sin pérdida — lo que no está probado no existe.
- Compartir : una imagen versionada y un repo clonado + up = aplicación completa, sin «instala Node 20».
Hilo Idir — dos entregas en Argel
Idir, devops junior en Argel, repasa sus dos proyectos destacados del trimestre : contenerizar la API Node que solo corría en el portátil de su autor (Dockerfile, build 1.0, endurecimiento, subida al registro, retomada por un compañero), y luego equipar a su equipo pequeño con un stack Compose api + base + consola (parámetros, restart y healthcheck, validación, prueba sin pérdida). Los dos casos siguientes retoman su encadenamiento : escribir limpio, construir, endurecer, compartir, declarar, probar.
Cada caso sigue el desarrollo Contexto → Pasos → Resultado : rejuégalo en tu aplicación.
Poner las piezas de punta a punta
Los niveles anteriores sentaron las piezas (imágenes, contenedores, volúmenes, redes, Dockerfile, Compose, registros, CI) ; aquí se ensamblan en condiciones reales : es el encadenamiento de los buenos reflejos — imagen endurecida, stack declarativo, persistencia probada, CI única — lo que distingue un despliegue fiable de un apilamiento frágil. Dos casos desarrollados de la A a la Z.
Caso 1 — Contenerizar una API de la A a la Z
Contexto: Recibimos una API Node que solo corre en el portátil de su autor y debemos entregarla como imagen compartida. Riesgo : un entorno no reproducible y los «en mi máquina sí funciona».
Déroulé :
- Escribir el Dockerfile (node:20-slim, WORKDIR, dependencias primero, USER node, CMD) con .dockerignore (N2.1, N2.5).
- Construir como mon-app:1.0 y probar en local con -p 3000:3000 (N1.2, N2.1).
- Endurecer : .dockerignore, non-root, scan, tag inmutable 1.0 (N2.5, N4.1).
- Subir al registro y hacer que un compañero descargue + lance (N2.3, N4.1).
- Validar : un tercero lanza la imagen con un comando, sin instalar Node 20.
Resultado: Una imagen 1.0 compartida, lanzable en todas partes con un comando, sin «instala Node 20».
Caso 2 — Stack Compose para un equipo pequeño
Contexto: Un equipo quiere lanzar api + base + consola con un comando, con datos persistidos y actualizaciones simples. Desafío : un stack que se rompe al primer reinicio.
Déroulé :
- Escribir compose.yml : api (build), bdd (volumen pgdata), adminer en perfil dev (N3.1, N3.4).
- Parametrizar vía ${PORT:-3000} y .env.example versionado, .env no versionado (N3.4, N2.4).
- Añadir restart + healthcheck bdd + depends_on healthy (N4.2, N3.2).
- Validar con config, up -d --build, y luego probar down/up sin pérdida (N3.2, N4.4).
- Documentar : la doc «cómo lanzar» cabe en una línea (clone + up).
Resultado: Un repo clonado + up = aplicación completa ; la doc «cómo lanzar» cabe en una línea.
Guion listo para decir — enmarcar una entrega Docker (30 s)
«Nuestra necesidad : [API por compartir / stack api + base]. Nuestra imagen : [slim, non-root, tag 1.0, escaneada]. Nuestro stack : [compose versionado, ${PORT:-3000}, volumen pgdata]. Nuestra prueba : [descarga por un tercero / down-up sin pérdida].»
Modelo copiar-pegar — encadenamiento caso práctico
docker build -t mon-app:1.0 .
docker run -d --name api -p 3000:3000 mon-app:1.0
docker compose config
docker compose up -d --build
docker compose ps
docker compose down
docker compose up -d
TPE / presupuesto ajustado
Un solo caso rejugado en pequeño : una imagen 1.0, un compose de dos servicios, prueba down/up anotada.
PYME Argel
Adaptar a las realidades locales : probar en la máquina real del equipo, prever el volumen pgdata con copia de seguridad.
Remoto / híbrido
Duplicar la trazabilidad a distancia : tag, registro y prueba down/up anotados y compartidos.
Intercultural
Explicitar la doc antes de transponer un caso : una línea «clonar + up» debe hablar a todo recién llegado.
Reto 48h — aplica mañana
Toma 1 aplicación real y rejuega el encadenamiento : Dockerfile limpio, build 1.0, run local, compose validado con config, prueba down/up sin pérdida.
- Sé encadenar Dockerfile, build, publicación y stack Compose en un caso real.
- Tengo un encadenamiento rejecutable (imagen 1.0, compose versionado, prueba sin pérdida).
- Hice el reto 48h o planifiqué su fecha.
Idir entrega su API. ¿Qué encadenamiento respeta la guía?