Creación de imágenes Docker para APIs de ASP.NET Core
Clase 9 de 22 • Curso de Introducción a DevOps
Resumen
Implementar archivos Docker en tus proyectos es esencial para trabajar de manera efectiva con tu equipo. Este proceso facilita la unificación y replicación del entorno de trabajo, asegurando que todas las pruebas y funcionalidades se comporten igual, independientemente del contexto. Aprende a generar correctamente nuevos issues, crear ramas de trabajo y generar imágenes Docker compatibles con GitHub Actions.
¿Cuándo es válido agregar un nuevo issue al sprint?
Agregar nuevas tareas a un sprint es aceptable solo cuando solventan detalles críticos no previstos originalmente. Ten en cuenta lo siguiente:
- El asunto encontrado debe haber sido omitido al detallar inicialmente los issues.
- Nuevos temas no previstos sí pueden derivar en la creación de un nuevo issue.
- Nunca añadas tareas no relacionadas directamente con el backlog preexistente.
Esto garantiza transparencia, evita duplicación de esfuerzos y facilita el seguimiento del progreso del proyecto.
¿Cómo crear e integrar un nuevo issue?
Crear un nuevo issue requiere los siguientes pasos claros y precisos:
- Ingresa al repositorio donde está tu proyecto.
- Abre un nuevo issue seleccionando un formato blank issue.
- Titúlalo de manera descriptiva, por ejemplo, "agregar imagen de Docker".
- Asigna directamente este nuevo issue al estado "en progreso" para tenerlo visible.
Es importante precisar que esto ayudará al equipo a reconocer claramente cuáles tareas están siendo abordadas.
¿Qué pasos seguir para generar una imagen Docker?
Para generar correctamente una imagen Docker desde tu proyecto:
- Asegúrate de crear una nueva rama relacionada con tu issue, por ejemplo
ES8
. - Agrega un archivo Dockerfile dentro del directorio específico del proyecto (por ejemplo, 'contactos API').
- Ingresa las instrucciones necesarias (versión del SDK, rutas específicas de proyecto, comandos de compilación).
Un ejemplo práctico sería:
FROM SDK8
WORKDIR /contactosAPI
COPY . .
RUN dotnet restore
RUN dotnet build -c Release
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "contactosAPI.dll"]
Una vez creada esta estructura, comprueba su funcionamiento en tu entorno local ejecutando los siguientes comandos:
docker build -t usuario/contactosAPI .
docker images
docker run -it --rm -p 8080:80 usuario/contactosAPI
A continuación, revisa mediante tu navegador en la dirección localhost:8080/swagger/index.html
para verificar que la aplicación corra correctamente.
¿Cómo solucionar problemas comunes con Docker?
Si Swagger UI no carga adecuadamente (esencial esencialmente en ambientes no definidos como desarrollo), modifica la configuración:
- Ve a tu archivo
program.cs
. - Asegúrate que Swagger esté configurado para permitir ejecución en todas las circunstancias y no solo en modo desarrollo.
Una vez modificado esto, interrumpe el contenedor Docker, límpialo y vuelve a construir y ejecutar la imagen Docker según los comandos indicados anteriormente. Esto despejará cualquier error y garantizará que Swagger funcione adecuadamente en cualquier entorno.
¿Por qué es relevante integrar Docker en tus proyectos?
El uso específico de Docker en un entorno controlado ofrece:
- Mayor estabilidad y confiabilidad entre versiones de código.
- Reproducción exacta del ambiente de trabajo en pruebas y producción.
- Mayor facilidad y rapidez en despliegues automatizados con herramientas como GitHub Actions.
Recuerda siempre comprobar la funcionalidad local antes de subir cambios, ya que esto asegura mejores resultados en procesos automatizados existentes en GitHub Actions.
¿Qué otros hábitos consideras claves a la hora de trabajar con Docker en equipo? Compártelos en los comentarios para seguir aprendiendo juntos.