Esta aplicación web API entrega datos sobre cuanto valen ciertas divisas en días determinados.
Para que GitHub cree una imagen de Docker, debes configurar una GitHub Action que use un Dockerfile en tu repositorio. La acción automática incluirá pasos para clonar tu código, iniciar sesión en el registro de contenedores (como GitHub Packages o Docker Hub), construir la imagen y luego enviarla al registro.
- Crea o asegúrate de tener un
Dockerfile: Este archivo contendrá todas las instrucciones para construir tu imagen. - Sube el
Dockerfiley tu código: Si aún no lo has hecho, sube elDockerfiley los archivos de tu aplicación a tu repositorio de GitHub.
- Crea un Personal Access Token (PAT): Ve a la configuración de desarrollador de tu cuenta de GitHub, crea un nuevo token con permisos para
write:packagesyread:packages. - Guarda el token como un secreto: En tu repositorio, ve a "Settings" > "Secrets and variables" > "Actions" y crea una nueva variable de repositorio (por ejemplo,
DOCKER_TOKEN) donde almacenes el valor del token.
- Crea un archivo YAML en tu repositorio: Dentro de la carpeta
.github/workflows, crea un archivo (por ejemplo,docker-image.yml). - Define el evento de activación: Configura el flujo para que se ejecute automáticamente cada vez que se empuje o se envíe un pull request a la rama principal (por ejemplo,
on: push: branches: main). - Añade un trabajo (
job): Este trabajo contendrá los pasos para construir y enviar la imagen.
name: Build and Push Docker Image
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-push-image:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4 # Obtiene el código de tu repositorio
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2 # Permite iniciar sesión en el registro de contenedores
with:
registry: ghcr.io # Usa el registro de contenedores de GitHub
username: ${{ github.actor }} # Usa tu nombre de usuario de GitHub
password: ${{ secrets.DOCKER_TOKEN }} # Usa el token de acceso personal guardado como secreto
- name: Build and push Docker image
uses: docker/build-push-action@v4 # Acción para construir y subir imágenes de Docker
with:
context: . # Construye desde el directorio raíz del proyecto
push: true # Sube la imagen al registro después de construirla
tags: | # Asigna etiquetas a la imagen
ghcr.io/${{ github.repository }}:${{ github.sha }}
ghcr.io/${{ github.repository }}:latest- Este ejemplo utiliza la acción
docker/login-actionpara iniciar sesión y la accióndocker/build-push-actionpara construir y publicar. - Las etiquetas
ghcr.io/${{ github.repository }}se refieren a la URL del registro de GitHub, tu nombre de usuario y el nombre del repositorio.
- Guarda el archivo YAML en
.github/workflows/y confirma los cambios en tu repositorio. - GitHub Actions ejecutará automáticamente este flujo en la próxima inserción en la rama
main, construyendo y publicando tu imagen de Docker en GitHub Packages.
Para configurar LANG, LANGUAGE y LC_ALL en docker-compose.yml, debes definirlas como variables de entorno dentro de la sección environment de tu servicio. Esto asegura que el idioma y la configuración regional se establezcan correctamente dentro del contenedor de la aplicación, por ejemplo, environment: - LANG=es_ES.UTF-8 - LANGUAGE=es_ES:es - LC_ALL=es_ES.UTF-8.
- Abre tu archivo
docker-compose.yml. - Busca la sección
servicesy el servicio para el que quieres configurar el idioma. - Añade la sección
environmentsi aún no existe. - Define las variables de entorno dentro de la sección
environmentcon los valores en español.
version: '3.8'
services:
mi-aplicacion:
image: mi-imagen-de-aplicacion
environment:
- LANG=es_ES.UTF-8
- LANGUAGE=es_ES:es
- LC_ALL=es_ES.UTF-8
ports:
- "8080:80"LANG: Establece la configuración regional predeterminada para la mayoría de los programas.LANGUAGE: Se utiliza principalmente para la traducción de mensajes de interfaz de usuario y puede tener múltiples valores.LC_ALL: Anula todas las otras variablesLC_*yLANG. Al establecerla, se aplica a todas las categorías de configuración regional.
La matriz DateTimeFormat.MonthNames de C# considera el idioma y la configuración regional del sistema porque el objeto DateTimeFormatInfo que la contiene está diseñado para proporcionar información específica de la referencia cultural para el formato de fecha y hora. Esto permite que la misma aplicación muestre nombres de meses en español, inglés, o cualquier otro idioma soportado, basándose en la configuración del sistema donde se ejecuta el código, lo que garantiza que los nombres de los meses y el formato de fecha sean apropiados para el usuario final.
- Especificidad cultural:
DateTimeFormatInfoes una clase que contiene propiedades para el formato de fecha y hora, como los nombres de los meses, días de la semana, y formatos de números específicos de cada cultura (por ejemplo,es-CLpara español de Chile oen-USpara inglés de Estados Unidos). - Adaptación automática: Cuando se utiliza sin especificar una cultura, C# utiliza la cultura actual del sistema operativo como valor predeterminado. Esto significa que
DateTimeFormat.MonthNamescontendrá automáticamente los nombres de los meses correspondientes a esa cultura. - Uso explícito: También es posible sobrescribir este comportamiento y especificar manualmente una cultura diferente al formatear una fecha, por ejemplo, utilizando
ToString("MMMM", new CultureInfo("es-CL"))para forzar el nombre del mes en inglés.