101 lines
7.2 KiB
Text
101 lines
7.2 KiB
Text
|
|
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/Sozsoft.Platform.HttpApi.Host/Sozsoft.Platform.HttpApi.Host.csproj" "src/Sozsoft.Platform.HttpApi.Host/"
|
|||
|
|
COPY "src/Sozsoft.Platform.HttpApi.Host/package.json" "src/Sozsoft.Platform.HttpApi.Host/"
|
|||
|
|
COPY "src/Sozsoft.Platform.HttpApi.Host/package-lock.json" "src/Sozsoft.Platform.HttpApi.Host/"
|
|||
|
|
WORKDIR /app/src/Sozsoft.Platform.HttpApi.Host
|
|||
|
|
RUN dotnet tool run abp install-libs
|
|||
|
|
WORKDIR /app
|
|||
|
|
|
|||
|
|
COPY "modules/Sozsoft.Languages/Sozsoft.Languages.Application/Sozsoft.Languages.Application.csproj" "modules/Sozsoft.Languages/Sozsoft.Languages.Application/"
|
|||
|
|
COPY "modules/Sozsoft.Languages/Sozsoft.Languages.Application.Contracts/Sozsoft.Languages.Application.Contracts.csproj" "modules/Sozsoft.Languages/Sozsoft.Languages.Application.Contracts/"
|
|||
|
|
COPY "modules/Sozsoft.Languages/Sozsoft.Languages.Domain/Sozsoft.Languages.Domain.csproj" "modules/Sozsoft.Languages/Sozsoft.Languages.Domain/"
|
|||
|
|
COPY "modules/Sozsoft.Languages/Sozsoft.Languages.Domain.Shared/Sozsoft.Languages.Domain.Shared.csproj" "modules/Sozsoft.Languages/Sozsoft.Languages.Domain.Shared/"
|
|||
|
|
COPY "modules/Sozsoft.Languages/Sozsoft.Languages.EntityFrameworkCore/Sozsoft.Languages.EntityFrameworkCore.csproj" "modules/Sozsoft.Languages/Sozsoft.Languages.EntityFrameworkCore/"
|
|||
|
|
COPY "modules/Sozsoft.MailQueue/Sozsoft.MailQueue.csproj" "modules/Sozsoft.MailQueue/"
|
|||
|
|
COPY "modules/Sozsoft.Notifications/Sozsoft.Notifications.Application/Sozsoft.Notifications.Application.csproj" "modules/Sozsoft.Notifications/Sozsoft.Notifications.Application/"
|
|||
|
|
COPY "modules/Sozsoft.Notifications/Sozsoft.Notifications.Application.Contracts/Sozsoft.Notifications.Application.Contracts.csproj" "modules/Sozsoft.Notifications/Sozsoft.Notifications.Application.Contracts/"
|
|||
|
|
COPY "modules/Sozsoft.Notifications/Sozsoft.Notifications.Domain/Sozsoft.Notifications.Domain.csproj" "modules/Sozsoft.Notifications/Sozsoft.Notifications.Domain/"
|
|||
|
|
COPY "modules/Sozsoft.Notifications/Sozsoft.Notifications.Domain.Shared/Sozsoft.Notifications.Domain.Shared.csproj" "modules/Sozsoft.Notifications/Sozsoft.Notifications.Domain.Shared/"
|
|||
|
|
COPY "modules/Sozsoft.Notifications/Sozsoft.Notifications.EntityFrameworkCore/Sozsoft.Notifications.EntityFrameworkCore.csproj" "modules/Sozsoft.Notifications/Sozsoft.Notifications.EntityFrameworkCore/"
|
|||
|
|
COPY "modules/Sozsoft.Sender/Sozsoft.Sender.csproj" "modules/Sozsoft.Sender/"
|
|||
|
|
COPY "modules/Sozsoft.Settings/Sozsoft.Settings.Application/Sozsoft.Settings.Application.csproj" "modules/Sozsoft.Settings/Sozsoft.Settings.Application/"
|
|||
|
|
COPY "modules/Sozsoft.Settings/Sozsoft.Settings.Application.Contracts/Sozsoft.Settings.Application.Contracts.csproj" "modules/Sozsoft.Settings/Sozsoft.Settings.Application.Contracts/"
|
|||
|
|
COPY "modules/Sozsoft.Settings/Sozsoft.Settings.Domain/Sozsoft.Settings.Domain.csproj" "modules/Sozsoft.Settings/Sozsoft.Settings.Domain/"
|
|||
|
|
COPY "modules/Sozsoft.Settings/Sozsoft.Settings.Domain.Shared/Sozsoft.Settings.Domain.Shared.csproj" "modules/Sozsoft.Settings/Sozsoft.Settings.Domain.Shared/"
|
|||
|
|
COPY "modules/Sozsoft.Settings/Sozsoft.Settings.EntityFrameworkCore/Sozsoft.Settings.EntityFrameworkCore.csproj" "modules/Sozsoft.Settings/Sozsoft.Settings.EntityFrameworkCore/"
|
|||
|
|
COPY "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Application/Sozsoft.SqlQueryManager.Application.csproj" "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Application/"
|
|||
|
|
COPY "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Application.Contracts/Sozsoft.SqlQueryManager.Application.Contracts.csproj" "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Application.Contracts/"
|
|||
|
|
COPY "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Domain/Sozsoft.SqlQueryManager.Domain.csproj" "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Domain/"
|
|||
|
|
COPY "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Domain.Shared/Sozsoft.SqlQueryManager.Domain.Shared.csproj" "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Domain.Shared/"
|
|||
|
|
COPY "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.EntityFrameworkCore/Sozsoft.SqlQueryManager.EntityFrameworkCore.csproj" "modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.EntityFrameworkCore/"
|
|||
|
|
COPY "src/Sozsoft.Platform.Application/Sozsoft.Platform.Application.csproj" "src/Sozsoft.Platform.Application/"
|
|||
|
|
COPY "src/Sozsoft.Platform.Application.Contracts/Sozsoft.Platform.Application.Contracts.csproj" "src/Sozsoft.Platform.Application.Contracts/"
|
|||
|
|
COPY "src/Sozsoft.Platform.Domain/Sozsoft.Platform.Domain.csproj" "src/Sozsoft.Platform.Domain/"
|
|||
|
|
COPY "src/Sozsoft.Platform.Domain.Shared/Sozsoft.Platform.Domain.Shared.csproj" "src/Sozsoft.Platform.Domain.Shared/"
|
|||
|
|
COPY "src/Sozsoft.Platform.EntityFrameworkCore/Sozsoft.Platform.EntityFrameworkCore.csproj" "src/Sozsoft.Platform.EntityFrameworkCore/"
|
|||
|
|
COPY "src/Sozsoft.Platform.HttpApi/Sozsoft.Platform.HttpApi.csproj" "src/Sozsoft.Platform.HttpApi/"
|
|||
|
|
COPY "src/Sozsoft.Platform.HttpApi.Client/Sozsoft.Platform.HttpApi.Client.csproj" "src/Sozsoft.Platform.HttpApi.Client/"
|
|||
|
|
COPY "src/Sozsoft.Platform.HttpApi.Host/Sozsoft.Platform.HttpApi.Host.csproj" "src/Sozsoft.Platform.HttpApi.Host/"
|
|||
|
|
COPY "test/Sozsoft.Platform.EntityFrameworkCore.Tests/Sozsoft.Platform.EntityFrameworkCore.Tests.csproj" "test/Sozsoft.Platform.EntityFrameworkCore.Tests/"
|
|||
|
|
COPY "test/Sozsoft.Platform.TestBase/Sozsoft.Platform.TestBase.csproj" "test/Sozsoft.Platform.TestBase/"
|
|||
|
|
RUN dotnet restore "src/Sozsoft.Platform.HttpApi.Host/Sozsoft.Platform.HttpApi.Host.csproj"
|
|||
|
|
|
|||
|
|
COPY . .
|
|||
|
|
RUN mkdir -p publish
|
|||
|
|
RUN dotnet publish "src/Sozsoft.Platform.HttpApi.Host/Sozsoft.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 ["./Sozsoft.Platform.HttpApi.Host"]
|