erp-platform/api/Erp.Platform.HttpApi.Host.Dockerfile
2026-01-17 00:16:47 +03:00

100 lines
6.6 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build
ENV DOTNET_NUGET_SIGNATURE_VERIFICATION=false
WORKDIR /app
RUN apk update && apk upgrade
RUN apk add nodejs~=24 npm~=11
COPY .config/dotnet-tools.json .config/dotnet-tools.json
RUN dotnet tool restore
ENV PATH="/root/.dotnet/tools:/app/.config/dotnet/tools:${PATH}"
COPY "src/Erp.Platform.HttpApi.Host/Erp.Platform.HttpApi.Host.csproj" "src/Erp.Platform.HttpApi.Host/"
COPY "src/Erp.Platform.HttpApi.Host/package.json" "src/Erp.Platform.HttpApi.Host/"
COPY "src/Erp.Platform.HttpApi.Host/package-lock.json" "src/Erp.Platform.HttpApi.Host/"
WORKDIR /app/src/Erp.Platform.HttpApi.Host
RUN dotnet tool run abp install-libs
WORKDIR /app
COPY "modules/Erp.Languages/Erp.Languages.Application/Erp.Languages.Application.csproj" "modules/Erp.Languages/Erp.Languages.Application/"
COPY "modules/Erp.Languages/Erp.Languages.Application.Contracts/Erp.Languages.Application.Contracts.csproj" "modules/Erp.Languages/Erp.Languages.Application.Contracts/"
COPY "modules/Erp.Languages/Erp.Languages.Domain/Erp.Languages.Domain.csproj" "modules/Erp.Languages/Erp.Languages.Domain/"
COPY "modules/Erp.Languages/Erp.Languages.Domain.Shared/Erp.Languages.Domain.Shared.csproj" "modules/Erp.Languages/Erp.Languages.Domain.Shared/"
COPY "modules/Erp.Languages/Erp.Languages.EntityFrameworkCore/Erp.Languages.EntityFrameworkCore.csproj" "modules/Erp.Languages/Erp.Languages.EntityFrameworkCore/"
COPY "modules/Erp.MailQueue/Erp.MailQueue.csproj" "modules/Erp.MailQueue/"
COPY "modules/Erp.Notifications/Erp.Notifications.Application/Erp.Notifications.Application.csproj" "modules/Erp.Notifications/Erp.Notifications.Application/"
COPY "modules/Erp.Notifications/Erp.Notifications.Application.Contracts/Erp.Notifications.Application.Contracts.csproj" "modules/Erp.Notifications/Erp.Notifications.Application.Contracts/"
COPY "modules/Erp.Notifications/Erp.Notifications.Domain/Erp.Notifications.Domain.csproj" "modules/Erp.Notifications/Erp.Notifications.Domain/"
COPY "modules/Erp.Notifications/Erp.Notifications.Domain.Shared/Erp.Notifications.Domain.Shared.csproj" "modules/Erp.Notifications/Erp.Notifications.Domain.Shared/"
COPY "modules/Erp.Notifications/Erp.Notifications.EntityFrameworkCore/Erp.Notifications.EntityFrameworkCore.csproj" "modules/Erp.Notifications/Erp.Notifications.EntityFrameworkCore/"
COPY "modules/Erp.Sender/Erp.Sender.csproj" "modules/Erp.Sender/"
COPY "modules/Erp.Settings/Erp.Settings.Application/Erp.Settings.Application.csproj" "modules/Erp.Settings/Erp.Settings.Application/"
COPY "modules/Erp.Settings/Erp.Settings.Application.Contracts/Erp.Settings.Application.Contracts.csproj" "modules/Erp.Settings/Erp.Settings.Application.Contracts/"
COPY "modules/Erp.Settings/Erp.Settings.Domain/Erp.Settings.Domain.csproj" "modules/Erp.Settings/Erp.Settings.Domain/"
COPY "modules/Erp.Settings/Erp.Settings.Domain.Shared/Erp.Settings.Domain.Shared.csproj" "modules/Erp.Settings/Erp.Settings.Domain.Shared/"
COPY "modules/Erp.Settings/Erp.Settings.EntityFrameworkCore/Erp.Settings.EntityFrameworkCore.csproj" "modules/Erp.Settings/Erp.Settings.EntityFrameworkCore/"
COPY "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Application/Erp.SqlQueryManager.Application.csproj" "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Application/"
COPY "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Application.Contracts/Erp.SqlQueryManager.Application.Contracts.csproj" "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Application.Contracts/"
COPY "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Domain/Erp.SqlQueryManager.Domain.csproj" "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Domain/"
COPY "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Domain.Shared/Erp.SqlQueryManager.Domain.Shared.csproj" "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.Domain.Shared/"
COPY "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.EntityFrameworkCore/Erp.SqlQueryManager.EntityFrameworkCore.csproj" "modules/Erp.SqlQueryManager/Erp.SqlQueryManager.EntityFrameworkCore/"
COPY "src/Erp.Platform.Application/Erp.Platform.Application.csproj" "src/Erp.Platform.Application/"
COPY "src/Erp.Platform.Application.Contracts/Erp.Platform.Application.Contracts.csproj" "src/Erp.Platform.Application.Contracts/"
COPY "src/Erp.Platform.Domain/Erp.Platform.Domain.csproj" "src/Erp.Platform.Domain/"
COPY "src/Erp.Platform.Domain.Shared/Erp.Platform.Domain.Shared.csproj" "src/Erp.Platform.Domain.Shared/"
COPY "src/Erp.Platform.EntityFrameworkCore/Erp.Platform.EntityFrameworkCore.csproj" "src/Erp.Platform.EntityFrameworkCore/"
COPY "src/Erp.Platform.HttpApi/Erp.Platform.HttpApi.csproj" "src/Erp.Platform.HttpApi/"
COPY "src/Erp.Platform.HttpApi.Client/Erp.Platform.HttpApi.Client.csproj" "src/Erp.Platform.HttpApi.Client/"
COPY "src/Erp.Platform.HttpApi.Host/Erp.Platform.HttpApi.Host.csproj" "src/Erp.Platform.HttpApi.Host/"
COPY "test/Erp.Platform.EntityFrameworkCore.Tests/Erp.Platform.EntityFrameworkCore.Tests.csproj" "test/Erp.Platform.EntityFrameworkCore.Tests/"
COPY "test/Erp.Platform.TestBase/Erp.Platform.TestBase.csproj" "test/Erp.Platform.TestBase/"
RUN dotnet restore "src/Erp.Platform.HttpApi.Host/Erp.Platform.HttpApi.Host.csproj"
COPY . .
RUN mkdir -p publish
RUN dotnet publish "src/Erp.Platform.HttpApi.Host/Erp.Platform.HttpApi.Host.csproj" -c Release -o /app/publish --no-restore
FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS final
# DevExpress License Key - runtime'da da gerekli
ARG DevExpress_License
ENV DevExpress_License=$DevExpress_License
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
LC_ALL=tr_TR.UTF-8 \
LANG=tr_TR.UTF-8
# DevExpress lisans dosyasını oluştur (runtime için)
RUN mkdir -p $HOME/.config/DevExpress && \
if [ -n "$DevExpress_License" ]; then \
echo "$DevExpress_License" > $HOME/.config/DevExpress/DevExpress_License.txt; \
fi
# icu'lar dotnet culture icin gerekli
# lib'ler wkhtmltopdf icin gerekli
# fontconfig ve fonts-* DevExpress reporting için gerekli
RUN apk update
RUN apk add --no-cache \
icu-data-full \
icu-libs \
libgdiplus \
libc6-compat \
libc-dev \
fontconfig \
ttf-dejavu \
ttf-liberation \
font-noto
# Font cache oluştur
RUN fc-cache -f -v
# OpenSSL default TLSv3 desteklediği için MSSQL 2012'ye bağlanmıyor. Bunu çözmek için gerekli
RUN sed -i 's/\[openssl_init\]/# [openssl_init]/' /etc/ssl/openssl.cnf
RUN printf "\n\n[openssl_init]\nssl_conf = ssl_sect" >> /etc/ssl/openssl.cnf
RUN printf "\n\n[ssl_sect]\nsystem_default = ssl_default_sect" >> /etc/ssl/openssl.cnf
RUN printf "\n\n[ssl_default_sect]\nMinProtocol = TLSv1\nCipherString = DEFAULT@SECLEVEL=0\n" >> /etc/ssl/openssl.cnf
EXPOSE 80
EXPOSE 443
WORKDIR /srv/app
COPY --from=build /app/publish .
ENTRYPOINT ["./Erp.Platform.HttpApi.Host"]