Añadiendo Docker a un proyecto .NET
Clase 9 de 22 • Curso de Introducción a DevOps
Resumen
Implementar Docker en proyectos de desarrollo ayuda a mantener consistencia y facilita la distribución del software. Identificar cuándo crear un nuevo issue relacionado con Docker durante un sprint es fundamental para una correcta gestión: solo las tareas omitidas originalmente pueden agregarse al backlog durante el sprint.
¿Cuándo agregar nuevas tareas al sprint?
Es aceptable incluir nuevas tareas dentro del sprint cuando detectas detalles cruciales que no fueron considerados inicialmente, siempre que no se trate de tareas completas omitidas en la planeación original. El ejemplo práctico es la creación de una imagen de Docker que se había acordado previamente con el equipo, pero no se había registrado:
- Crear un nuevo issue específico para agregar una imagen Docker.
- Registrar adecuadamente las tareas garantiza visibilidad y seguimiento.
- Evitar tareas sin registro previene duplicidad y mejora la comunicación del progreso.
¿Cómo crear una imagen Docker desde Visual Studio?
Una vez aclarada la importancia de registrar tareas, la creación práctica implica:
- Generar una nueva rama en Visual Studio relacionada al issue creado (
amin/8
). - Crear un archivo Dockerfile en la ubicación especificada (
src/contactos API
).
Proporciona claramente en el Dockerfile:
FROM sdk:8
WORKDIR /Contactos API
COPY . .
RUN dotnet restore
RUN dotnet publish -c Release -o out
ENTRYPOINT ["dotnet", "out/ContactosAPI.dll"]
¿Qué hacer para validar localmente la imagen Docker?
Antes de integrar la imagen Docker en GitHub Actions, confirma que funcione adecuadamente de manera local:
- Navega hasta el directorio que contiene tu Dockerfile desde la terminal (
cd src/contactos API
). - Ejecuta el comando de compilación:
docker build -t amin.espinosa/contactos.api .
- Valida la imagen generada usando:
docker images
- Ejecuta la imagen creada en un contenedor Docker:
docker run -it --rm --name api.contactos -p 8080:80 contactos.api
- Corrige la configuración en
program.cs
para que Swagger no esté limitado a entornos de desarrollo.
Finalmente, al abrir localhost:8080/swagger/index.html
en el navegador, confirmas que tu API está desplegada correctamente dentro del contenedor Docker.
Recuerda generar tu propio pull request posteriormente para continuar interactuando y recibiendo retroalimentación del equipo.