chore: fix #7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Definimos el nombre de esta acción para identificar su propósito fácilmente | |
name: Docker Image CI | |
# Especificamos que esta acción solo se ejecutará cuando: | |
# - Se realicen cambios (push) en la rama 'main' | |
# - Se abra un pull request hacia la rama 'main' | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
# Definimos los trabajos (jobs), que contienen pasos específicos a realizar | |
jobs: | |
build: | |
# Indicamos que el trabajo se ejecutará en un entorno basado en la última versión de Ubuntu | |
runs-on: ubuntu-latest | |
# Definimos los pasos para este trabajo | |
steps: | |
# Paso 1: Descargamos el contenido completo del repositorio (checkout) para trabajar con el código fuente | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Paso 2: Configuramos QEMU para permitir la construcción de imágenes multiplataforma | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@master | |
with: | |
platforms: all | |
# Paso 3: Iniciamos sesión en Docker Hub usando las credenciales almacenadas como secretos de github | |
# Esto es necesario para subir la imagen construida al repositorio en Docker Hub | |
- name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
# Paso 4: Configuramos Docker Buildx, una herramienta que permite construir imágenes multiplataforma | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
# Paso 5: Construimos y subimos la imagen al repositorio de Docker Hub | |
- name: Build and push | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
# - La imagen se construye a partir del Dockerfile y se soportan las plataformas 'linux/amd64' y 'linux/arm64' | |
file: ./Dockerfile | |
platforms: linux/amd64, linux/arm64 | |
push: true | |
# - La imagen se etiqueta como 'latest' para indicar que es la última versión | |
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/laravel:latest |