From adc413d12b3dd8ffa5828875b01fc112947a5d02 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 2 Sep 2026 09:25:19 +0200 Subject: [PATCH 1/2] Added docker files --- Dockerfile | 33 ++++++++++++++ PostFundManagement.Api/appsettings.json | 10 +++++ docker-compose.yml | 60 +++++++++++++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8980a93 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM node:22-bookworm-slim AS node + +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +ARG TARGETARCH +ENV DOTNET_CLI_TELEMETRY_OPTOUT=1 \ + NUGET_XMLDOC_MODE=skip +WORKDIR /app_source + +COPY --from=node /usr/local/bin/node /usr/local/bin/node +COPY --from=node /usr/local/lib/node_modules /usr/local/lib/node_modules +RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm \ + && npm install -g npm@latest + +COPY . . + +RUN dotnet restore "PostFundManagement.slnx" + +WORKDIR "/app_source/PostFundManagement.Api" +RUN dotnet build "PostFundManagement.Api.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "PostFundManagement.Api.csproj" -c Release --no-restore -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENV ASPNETCORE_FORWARDEDHEADERS_ENABLED=true +ENTRYPOINT ["dotnet", "PostFundManagement.Api.dll"] \ No newline at end of file diff --git a/PostFundManagement.Api/appsettings.json b/PostFundManagement.Api/appsettings.json index 7c12135..f81911d 100644 --- a/PostFundManagement.Api/appsettings.json +++ b/PostFundManagement.Api/appsettings.json @@ -31,5 +31,15 @@ "Microsoft.AspNetCore": "Warning" } }, + "EmailProcessorCron": "0 */5 * * * ?", + "Email": { + "SmtpServer": "smtp.example.com", + "SmtpPort": 587, + "SenderEmail": "noreply@example.com", + "SenderName": "Example" + }, + "HasherSettings": { + "MinHashLength": 11 + }, "AllowedHosts": "*" } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..95d7aa7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,60 @@ +services: + pfm.api: + image: pfm-api + build: + context: . + dockerfile: Dockerfile + network: host + container_name: pfm-api + ports: + - "8060:8080" + environment: + - ASPNETCORE_ENVIRONMENT=${ENVIRONMENT:-Development} + - ForwardedHeadersConfiguration__Enabled=true + - ForwardedHeadersConfiguration__AllowAll=true + - ForwardedHeadersConfiguration__ForwardLimit=1 + + # Postgres Database Overrides + - ConnectionStrings__PfmDatabase=Server=${POSTGRES_HOST:-192.168.1.170};Port=${POSTGRES_PORT:-5432};Database=${POSTGRES_DB:-pfm};User Id=${POSTGRES_USER:-pfm-user};Password=${POSTGRES_PASSWORD}; + + # Garage S3 Settings + - GeneralS3Settings__ServiceUrl=${GENERAL_S3_SERVICE_URL} + - GeneralS3Settings__Region=${GENERAL_S3_REGION:-garage} + - GeneralS3Settings__BucketName=${GENERAL_S3_BUCKET_NAME} + - GeneralS3Settings__CdnBaseUrl=${GENERAL_S3_CDN_BASE_URL} + + - ContractS3Settings__ServiceUrl=${CONTRACT_S3_SERVICE_URL} + - ContractS3Settings__Region=${CONTRACT_S3_REGION:-garage} + - ContractS3Settings__BucketName=${CONTRACT_S3_BUCKET_NAME} + - ContractS3Settings__CdnBaseUrl=${CONTRACT_S3_CDN_BASE_URL} + + - EvidenceS3Settings__ServiceUrl=${EVIDENCE_S3_SERVICE_URL} + - EvidenceS3Settings__Region=${EVIDENCE_S3_REGION:-garage} + - EvidenceS3Settings__BucketName=${EVIDENCE_S3_BUCKET_NAME} + - EvidenceS3Settings__CdnBaseUrl=${EVIDENCE_S3_CDN_BASE_URL} + + # HashIds overrides + - HasherSettings__MinHashLength=${HASHER_MIN_HASH_LENGTH} + - HasherSettings__Salt=${HASHER_SALT} + + # Skoruba Duende Security Overrides + - SecuritySettings__Authority=${SECURITY_AUTHORITY} + - SecuritySettings__Audience=${SECURITY_AUDIENCE} + - SecuritySettings__ClientId=${SECURITY_CLIENT_ID} + - SecuritySettings__ClientSecret=${SECURITY_CLIENT_SECRET} + + # Data Protection Overrides + - DataProtection__Certificate=${DATA_PROTECTION_CERTIFICATE} + - DataProtection__Password=${DATA_PROTECTION_CERTIFICATE_PASSWORD} + + # Monitoring Overrides + - Monitoring__Address=${MONITORING_ADDRESS} + - Monitoring__ServiceName=${MONITORING_SERVICE_NAME} + - Monitoring__ApiKey=${MONITORING_API_KEY} + + # Email Processor Overrides + - EmailProcessorCron=${EMAIL_PROCESSOR_CRON} + - Email__Credentials__Password=${EMAIL_CREDENTIALS_PASSWORD} + - Email__Credentials__Username=${EMAIL_CREDENTIALS_USERNAME} + - Email__SmtpServer=${EMAIL_SMTP_SERVER} + - Email__SmtpPort=${EMAIL_SMTP_PORT} \ No newline at end of file From 14b1f3a397ac113ffbb030db973276d9c8c7997b Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 2 Sep 2026 09:26:57 +0200 Subject: [PATCH 2/2] Chnaged app port --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 95d7aa7..8aa9d02 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: network: host container_name: pfm-api ports: - - "8060:8080" + - "8075:8080" environment: - ASPNETCORE_ENVIRONMENT=${ENVIRONMENT:-Development} - ForwardedHeadersConfiguration__Enabled=true