From d03a4c00ab848031e077c36294a9229519782bc5 Mon Sep 17 00:00:00 2001 From: Ricardo Carneiro Date: Sun, 17 Aug 2025 22:30:42 -0300 Subject: [PATCH] fix: build om docker file na raiz --- .gitea/workflows/deploy-bcards.yml | 31 ++++++++++++++++++++---- Dockerfile | 39 ++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 Dockerfile diff --git a/.gitea/workflows/deploy-bcards.yml b/.gitea/workflows/deploy-bcards.yml index 4165086..fde825c 100644 --- a/.gitea/workflows/deploy-bcards.yml +++ b/.gitea/workflows/deploy-bcards.yml @@ -109,11 +109,11 @@ jobs: BRANCH_NAME="${{ github.ref_name }}" if [ "$BRANCH_NAME" = "main" ]; then - # Main = Produção (ARM64) + # Main = Produção (ARM64) - usando Dockerfile da raiz como QRRapido echo "tag=latest" >> $GITHUB_OUTPUT echo "platform=linux/arm64" >> $GITHUB_OUTPUT echo "environment=Production" >> $GITHUB_OUTPUT - echo "dockerfile=src/BCards.Web/Dockerfile" >> $GITHUB_OUTPUT + echo "dockerfile=Dockerfile" >> $GITHUB_OUTPUT echo "deploy_target=production" >> $GITHUB_OUTPUT elif [[ "$BRANCH_NAME" == Release/* ]]; then # Release = Staging (x86) @@ -194,11 +194,18 @@ jobs: run: | echo "🚀 Deploying to production servers (ARM64)..." - # Configura SSH + # Configura SSH (igual ao QRRapido) mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa + # Adiciona hosts conhecidos + ssh-keyscan -H 141.148.162.114 >> ~/.ssh/known_hosts + ssh-keyscan -H 129.146.116.218 >> ~/.ssh/known_hosts + + # Testa a chave SSH + ssh-add ~/.ssh/id_rsa 2>/dev/null || echo "SSH key loaded" + # Deploy no Servidor 1 (ARM - OCI) ssh -o StrictHostKeyChecking=no ubuntu@141.148.162.114 << 'EOF' echo "🔄 Atualizando Servidor 1..." @@ -296,11 +303,18 @@ jobs: run: | echo "🚀 Deploying to staging server (x86)..." - # Configura SSH + # Configura SSH (igual ao QRRapido) mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa + # Adiciona hosts conhecidos + ssh-keyscan -H 141.148.162.114 >> ~/.ssh/known_hosts + ssh-keyscan -H 129.146.116.218 >> ~/.ssh/known_hosts + + # Testa a chave SSH + ssh-add ~/.ssh/id_rsa 2>/dev/null || echo "SSH key loaded" + # Deploy no Servidor Local x86 ssh -o StrictHostKeyChecking=no ubuntu@192.168.0.100 << EOF echo "🔄 Atualizando Servidor Staging..." @@ -350,11 +364,18 @@ jobs: run: | echo "🧹 Limpando recursos antigos..." - # Configura SSH + # Configura SSH (igual ao QRRapido) mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa + # Adiciona hosts conhecidos + ssh-keyscan -H 141.148.162.114 >> ~/.ssh/known_hosts + ssh-keyscan -H 129.146.116.218 >> ~/.ssh/known_hosts + + # Testa a chave SSH + ssh-add ~/.ssh/id_rsa 2>/dev/null || echo "SSH key loaded" + # Lista de servidores baseada na branch if [ "${{ github.ref_name }}" = "main" ]; then SERVERS=("141.148.162.114" "129.146.116.218") diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..506ed6f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +# Dockerfile - Production build (similar to QRRapido structure) +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 8080 +EXPOSE 8443 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /src +COPY ["src/BCards.Web/BCards.Web.csproj", "src/BCards.Web/"] +RUN dotnet restore "src/BCards.Web/BCards.Web.csproj" +COPY . . +WORKDIR "/src/src/BCards.Web" +RUN dotnet build "BCards.Web.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "BCards.Web.csproj" -c Release -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . + +# Create uploads directory +RUN mkdir -p /app/uploads && chmod 755 /app/uploads + +# Install dependencies for image processing +RUN apt-get update && apt-get install -y \ + libgdiplus \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Environment variables +ENV ASPNETCORE_URLS=http://+:8080 +ENV DOTNET_RUNNING_IN_CONTAINER=true + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ + CMD curl -f http://localhost:8080/health || exit 1 + +ENTRYPOINT ["dotnet", "BCards.Web.dll"] \ No newline at end of file -- 2.45.2