Ajustes de CI/CD.
fix: Run jobs on runner host to resolve network issues
Reseteo de estado por fallas del deply.
Reversión.
Nuevo testeo de CI/CD.
Reversión 2.
Fix
Reversión 3
Test con sh-runner
Reversión antes de cambio de foco.
Sin sh-runner.
No puede resolver gitea. Debe usar el secreto REGISTRY_URL.
Test con Gitea 1.21.11
Reversion 1.24.0
Va
Este
Final?
A ver...
Nuevo
Cambio de Enfoque para CI/CD. Se intenta uso de Drone.
Fix de yml para Drone.
Retry .drone.yml
Fix problema de indentación.
Retry yml
Va
Retry mil
Nuevo test
Fix: Configure docker plugin for insecure registry
Forzar la network.
Retry 0142
Test Webhook
Se agregan debug-network para verificar valores.
Se agregan daemon_dns para poder resolver los dominios de nuget desde los contenedores de despliegue.
Cambio de enfoque. Parametro para MTU (Maximum Transmission Unit) añadidos.
Prueba: Usar el Socket de Docker del Host
Fix indentación. Y Trusted en Drone.
Linter: duplicate step name
Todos los registros de contenedores (Docker Hub, Gitea, etc.) exigen que los nombres de las imágenes de Docker estén en minúsculas. El pipeline está intentando crear una imagen llamada dmolinari/GestionIntegralWeb-backend, pero la parte GestionIntegralWeb contiene mayúsculas.
Esto ocurre porque la variable de Drone ${DRONE_REPO_NAME} toma el nombre directamente de Gitea, que en este caso es GestionIntegralWeb. La sintaxis es: ${VARIABLE,,}.
Se añade la URL del registro al nombre del repo
Cabio de Variable por valor directo.
Retry 1806
Retry 1807
Webhook gitea Enable.
Added: privileged: true
Test con Kaniko
Fix yml
Retest
Cambio de imagen kaniko
Cambio por host
This commit is contained in:
37
Backend/GestionIntegral.Api/Dockerfile
Normal file
37
Backend/GestionIntegral.Api/Dockerfile
Normal file
@@ -0,0 +1,37 @@
|
||||
# --- Etapa 1: Build ---
|
||||
# Usamos el SDK de .NET 9 (o el que corresponda) para compilar.
|
||||
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
|
||||
WORKDIR /src
|
||||
|
||||
# Copiamos los archivos de proyecto (.sln y .csproj) y restauramos las dependencias.
|
||||
# Esto es una optimización de caché de Docker.
|
||||
COPY GestionIntegralWeb.sln .
|
||||
COPY Backend/GestionIntegral.Api/GestionIntegral.Api.csproj Backend/GestionIntegral.Api/
|
||||
|
||||
# Restauramos los paquetes NuGet.
|
||||
RUN dotnet restore "GestionIntegralWeb.sln"
|
||||
|
||||
# Copiamos todo el resto del código fuente.
|
||||
COPY . .
|
||||
|
||||
# Nos movemos al directorio del proyecto y lo construimos en modo Release.
|
||||
WORKDIR "/src/Backend/GestionIntegral.Api"
|
||||
RUN dotnet build "GestionIntegral.Api.csproj" -c Release -o /app/build
|
||||
|
||||
# --- Etapa 2: Publish ---
|
||||
# Publicamos la aplicación, lo que genera los artefactos listos para producción.
|
||||
FROM build AS publish
|
||||
RUN dotnet publish "GestionIntegral.Api.csproj" -c Release -o /app/publish /p:UseAppHost=false
|
||||
|
||||
# --- Etapa 3: Final ---
|
||||
# Usamos la imagen de runtime de ASP.NET, que es mucho más ligera que el SDK.
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:9.0
|
||||
WORKDIR /app
|
||||
COPY --from=publish /app/publish .
|
||||
|
||||
# El puerto en el que la API escuchará DENTRO del contenedor.
|
||||
# Usaremos 8080 para evitar conflictos si en el futuro corres algo en el puerto 80.
|
||||
EXPOSE 8080
|
||||
|
||||
# El comando para iniciar la API cuando el contenedor arranque.
|
||||
ENTRYPOINT ["dotnet", "GestionIntegral.Api.dll"]
|
||||
@@ -6,7 +6,7 @@
|
||||
}
|
||||
},
|
||||
"Jwt": {
|
||||
"Key": "badb1a38d221c9e23bcf70958840ca7f5a5dc54f2047dadf7ce45b578b5bc3e2",
|
||||
"Key": "",
|
||||
"Issuer": "GestionIntegralApi",
|
||||
"Audience": "GestionIntegralClient",
|
||||
"DurationInHours": 8
|
||||
|
||||
Reference in New Issue
Block a user