Este proyecto contiene un código fuente de una aplicación web que será contenerizada utilizando Docker. A continuación se describe el proceso para contenerizar la aplicación y automatizarlo con GitHub Actions.
El proyecto tiene la siguiente estructura de archivos y directorios:
├── Dockerfile
├── README.md
├── images/
├── node_modules/
├── package-lock.json
├── package.json
├── public/
├── src/
└── yarn.lock
Se creará un archivo Dockerfile en el directorio del proyecto para contenerizar la aplicación. El Dockerfile contendrá las siguientes instrucciones:
# Utiliza la imagen base de Node.js
FROM node:latest
# Establece el directorio de trabajo dentro del contenedor
WORKDIR /app
# Copia los archivos de tu proyecto al directorio de trabajo del contenedor
COPY . /app/
# Instala las dependencias del proyecto
RUN npm install
# Expone el puerto 3000 para acceder a la aplicación desde fuera del contenedor
EXPOSE 3000
# Define el comando para iniciar la aplicación
CMD ["npm", "start"]
Se utilizará GitHub Actions para automatizar el proceso de contenerización y despliegue de la aplicación. A continuación se muestra el archivo YAML de configuración de GitHub Actions:
name: Docker Image CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2 # Specify the version of the checkout action
- name: Build the Docker image
run: docker build . --file Dockerfile -t ventana1901/rick-and-morty:${{ github.run_number }}
# Use github.run_number to tag the Docker image with a unique identifier
- name: Docker Login
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push into Docker-hub
run: docker push ventana1901/rick-and-morty:${{ github.run_number }}
# Use github.run_number to reference the same tag used during build
Este archivo YAML configura un flujo de trabajo de GitHub Actions que se activa en cada push o pull request en la rama main. Realiza los siguientes pasos:
- Realiza el checkout del código fuente.
- Construye la imagen Docker utilizando el Dockerfile presente en el directorio del proyecto.
- Inicia sesión en Docker Hub utilizando las credenciales proporcionadas como secretos en el repositorio.
- Sube la imagen Docker construida a Docker Hub etiquetándola con un identificador único generado por GitHub Actions.
Con estos pasos, la aplicación se conteneriza automáticamente y la imagen se empuja a Docker Hub listo para su despliegue
Autor