Title: Integración con Git y CI/CD
Course: 2025 - LISI - Virtualizacion 2-2 > Section: Desarrollo y Orquestación con Docker

🧱 Tema: Integración con Herramientas de Desarrollo – Git y CI/CD

🎯 Objetivo

Aprender a integrar Docker con herramientas de control de versiones como Git y automatizar el ciclo de vida de desarrollo y despliegue de aplicaciones mediante pipelines CI/CD.

🗂️ 1. Git y Control de Versiones

✅ ¿Qué es Git?

Git es un sistema de control de versiones distribuido que permite gestionar el historial de cambios en proyectos de software.

🔹 Integración con Docker:

- Versionar archivos como Dockerfile, docker-compose.yml, scripts de configuración y documentación.
- Facilitar la colaboración entre desarrolladores.
- Automatizar despliegues desde repositorios.

🧪 Actividad práctica:

1. Crear un repositorio en GitHub con una aplicación web y su Dockerfile.
2. Clonar el repositorio y construir la imagen localmente.
3. Realizar cambios y subirlos con git push.

🔄 2. Introducción a CI/CD

✅ ¿Qué es CI/CD?

- CI (Integración Continua): automatiza la construcción y prueba del código cada vez que se realiza un cambio.
- CD (Despliegue Continuo): automatiza el despliegue del código en producción o entornos de prueba.

🔹 Herramientas populares:

- GitHub Actions
- GitLab CI/CD
- Jenkins
- CircleCI

⚙️ 3. Ejemplo con GitHub Actions

📁 Estructura del proyecto:

mi_app/
├── .github/
│   └── workflows/
│       └── docker.yml
├── Dockerfile
├── app.py
└── requirements.txt


📄 Contenido de docker.yml:

name: Build and Push Docker Image

on:

  push:

    branches: [ main ]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:

    - name: Checkout code

      uses: actions/checkout@v3

    - name: Build Docker image

      run: docker build -t usuario/mi_app .

    - name: Login to Docker Hub

      run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin

    - name: Push image

      run: docker push usuario/mi_app

🧪 Actividad práctica:

1. Crear un repositorio en GitHub con Dockerfile.
2. Configurar GitHub Actions para construir y subir la imagen a Docker Hub.
3. Verificar el despliegue automático tras cada push.

🧠 Buenas Prácticas

- Usar .dockerignore para evitar subir archivos innecesarios
- Versionar correctamente los cambios en el Dockerfile
- Automatizar pruebas antes del despliegue
- Usar secretos seguros para credenciales en CI/CD

📚 Recursos Complementarios

- GitHub Actions para Docker
- GitLab CI/CD Docs
- Tutoriales en YouTube: “CI/CD con Docker y GitHub Actions”