Added docker files

This commit is contained in:
2026-09-02 09:25:19 +02:00
parent b8aa5651fa
commit adc413d12b
3 changed files with 103 additions and 0 deletions
+33
View File
@@ -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"]
+10
View File
@@ -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": "*"
}
+60
View File
@@ -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}