From 39029f199cde913cbe6ba334dd70c8cc27e53ba6 Mon Sep 17 00:00:00 2001 From: "LORENZO\\pacio" Date: Tue, 28 Jan 2025 14:33:35 +0100 Subject: [PATCH 1/4] aggiunta dockerfile e compose --- ApiAdHoc_Odoo/Dockerfile | 18 ++++++++++++++++++ ApiAdHoc_Odoo/docker-compose.yml | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 ApiAdHoc_Odoo/Dockerfile create mode 100644 ApiAdHoc_Odoo/docker-compose.yml diff --git a/ApiAdHoc_Odoo/Dockerfile b/ApiAdHoc_Odoo/Dockerfile new file mode 100644 index 0000000..8783b4e --- /dev/null +++ b/ApiAdHoc_Odoo/Dockerfile @@ -0,0 +1,18 @@ +# Use the .NET 8 runtime image +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +# Build the application +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /src +COPY ["ApiAdHoc_Odoo.csproj", "./"] +RUN dotnet restore "ApiAdHoc_Odoo.csproj" +COPY . . +RUN dotnet publish -c Release -o /app + +FROM base AS final +WORKDIR /app +COPY --from=build /app . +ENTRYPOINT ["dotnet", "ApiAdHoc_Odoo.dll"] diff --git a/ApiAdHoc_Odoo/docker-compose.yml b/ApiAdHoc_Odoo/docker-compose.yml new file mode 100644 index 0000000..7c6a7fc --- /dev/null +++ b/ApiAdHoc_Odoo/docker-compose.yml @@ -0,0 +1,13 @@ +services: + api-adhoc-odoo: + build: + context: . + dockerfile: Dockerfile + ports: + - "50000:80" # HTTP + - "50001:443" # HTTPS + environment: + ASPNETCORE_ENVIRONMENT: "Production" + volumes: + - ./logs:/app/logs # Optional: Log files storage + restart: unless-stopped From 50f7f504e0ea64d7c1de15c9b8b156723716f6f3 Mon Sep 17 00:00:00 2001 From: "LORENZO\\pacio" Date: Thu, 30 Jan 2025 10:46:44 +0100 Subject: [PATCH 2/4] gestione sql obsoleto --- ApiAdHoc_Odoo/Dockerfile | 9 +++++++++ ApiAdHoc_Odoo/Program.cs | 4 ++++ ApiAdHoc_Odoo/docker-compose.yml | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ApiAdHoc_Odoo/Dockerfile b/ApiAdHoc_Odoo/Dockerfile index 8783b4e..afc9a23 100644 --- a/ApiAdHoc_Odoo/Dockerfile +++ b/ApiAdHoc_Odoo/Dockerfile @@ -4,6 +4,15 @@ WORKDIR /app EXPOSE 80 EXPOSE 443 +#PER CONNESSIONE A DATABASE MSSQL OBSOLETI +# Install OpenSSL and modify its configuration to allow weaker ciphers and TLSv1 +RUN apt-get update && apt-get install -y libssl3 \ + && echo "[system_default_sect]" >> /etc/ssl/openssl.cnf \ + && echo "MinProtocol = TLSv1" >> /etc/ssl/openssl.cnf \ + && echo "CipherString = DEFAULT@SECLEVEL=1" >> /etc/ssl/openssl.cnf \ + && echo "SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_3);" >> /etc/ssl/openssl.cnf \ + && rm -rf /var/lib/apt/lists/* + # Build the application FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src diff --git a/ApiAdHoc_Odoo/Program.cs b/ApiAdHoc_Odoo/Program.cs index b09fe1e..0fe6692 100644 --- a/ApiAdHoc_Odoo/Program.cs +++ b/ApiAdHoc_Odoo/Program.cs @@ -2,9 +2,13 @@ using ApiAdHoc_Odoo.Data; using ApiAdHoc_Odoo.Models; using Microsoft.EntityFrameworkCore; using System; +using System.Net; var builder = WebApplication.CreateBuilder(args); +// Enable legacy TLS protocols (TLS 1.0/1.1) +ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; + // Add services to the container. builder.Services.AddControllers(); diff --git a/ApiAdHoc_Odoo/docker-compose.yml b/ApiAdHoc_Odoo/docker-compose.yml index 7c6a7fc..7874f17 100644 --- a/ApiAdHoc_Odoo/docker-compose.yml +++ b/ApiAdHoc_Odoo/docker-compose.yml @@ -4,7 +4,7 @@ services: context: . dockerfile: Dockerfile ports: - - "50000:80" # HTTP + - "50000:8080" # HTTP - "50001:443" # HTTPS environment: ASPNETCORE_ENVIRONMENT: "Production" From fa103394ee65923446a3feff6594a110a99c00b6 Mon Sep 17 00:00:00 2001 From: "LORENZO\\pacio" Date: Thu, 30 Jan 2025 11:05:27 +0100 Subject: [PATCH 3/4] downgrade package sqlserver --- ApiAdHoc_Odoo/ApiAdHoc_Odoo.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ApiAdHoc_Odoo/ApiAdHoc_Odoo.csproj b/ApiAdHoc_Odoo/ApiAdHoc_Odoo.csproj index c8aa732..a3e5701 100644 --- a/ApiAdHoc_Odoo/ApiAdHoc_Odoo.csproj +++ b/ApiAdHoc_Odoo/ApiAdHoc_Odoo.csproj @@ -8,7 +8,7 @@ - + From 946b6cf6b5a4c2be27ea50c484c3f54b267c57bf Mon Sep 17 00:00:00 2001 From: "LORENZO\\pacio" Date: Thu, 30 Jan 2025 11:07:24 +0100 Subject: [PATCH 4/4] docker --- ApiAdHoc_Odoo/Dockerfile | 54 ++++++++++++++++++++------------ ApiAdHoc_Odoo/docker-compose.yml | 2 +- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/ApiAdHoc_Odoo/Dockerfile b/ApiAdHoc_Odoo/Dockerfile index afc9a23..12549dd 100644 --- a/ApiAdHoc_Odoo/Dockerfile +++ b/ApiAdHoc_Odoo/Dockerfile @@ -1,27 +1,41 @@ -# Use the .NET 8 runtime image -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -WORKDIR /app -EXPOSE 80 -EXPOSE 443 - -#PER CONNESSIONE A DATABASE MSSQL OBSOLETI -# Install OpenSSL and modify its configuration to allow weaker ciphers and TLSv1 -RUN apt-get update && apt-get install -y libssl3 \ - && echo "[system_default_sect]" >> /etc/ssl/openssl.cnf \ - && echo "MinProtocol = TLSv1" >> /etc/ssl/openssl.cnf \ - && echo "CipherString = DEFAULT@SECLEVEL=1" >> /etc/ssl/openssl.cnf \ - && echo "SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_3);" >> /etc/ssl/openssl.cnf \ - && rm -rf /var/lib/apt/lists/* - -# Build the application +# Use the .NET SDK image for building the application FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src -COPY ["ApiAdHoc_Odoo.csproj", "./"] -RUN dotnet restore "ApiAdHoc_Odoo.csproj" -COPY . . + +# Copy the project files and restore dependencies +COPY ApiAdHoc_Odoo.csproj ./ +RUN dotnet restore + +# Copy the rest of the source code and build the application +COPY . ./ RUN dotnet publish -c Release -o /app -FROM base AS final +# Use the ASP.NET runtime image for the final container +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base WORKDIR /app + +# Copy the built application from the build stage COPY --from=build /app . + +# Install dependencies for ODBC driver +RUN apt-get update && \ + apt-get install -y curl gnupg2 && \ + mkdir -p /usr/share/keyrings && \ + curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg && \ + echo "deb [signed-by=/usr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" > /etc/apt/sources.list.d/mssql-release.list && \ + apt-get update && \ + ACCEPT_EULA=Y apt-get install -y msodbcsql18 + +# Lower OpenSSL security level to allow legacy TLS protocols (TLS 1.0/1.1) +RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf +RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf + +# Set environment variables to enable legacy TLS protocols +ENV DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 +ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt + +# Expose the port your API will run on +EXPOSE 80 + +# Set the entry point for the application ENTRYPOINT ["dotnet", "ApiAdHoc_Odoo.dll"] diff --git a/ApiAdHoc_Odoo/docker-compose.yml b/ApiAdHoc_Odoo/docker-compose.yml index 7874f17..ee6822a 100644 --- a/ApiAdHoc_Odoo/docker-compose.yml +++ b/ApiAdHoc_Odoo/docker-compose.yml @@ -5,7 +5,7 @@ services: dockerfile: Dockerfile ports: - "50000:8080" # HTTP - - "50001:443" # HTTPS +# - "50001:443" # HTTPS environment: ASPNETCORE_ENVIRONMENT: "Production" volumes: