75 lines
5.3 KiB
Docker
75 lines
5.3 KiB
Docker
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~=22 npm~=10
|
||
|
||
RUN dotnet tool install -g Volo.Abp.Cli
|
||
ENV PATH="/root/.dotnet/tools:${PATH}"
|
||
COPY "src/Kurs.Platform.HttpApi.Host/Kurs.Platform.HttpApi.Host.csproj" "src/Kurs.Platform.HttpApi.Host/"
|
||
COPY "src/Kurs.Platform.HttpApi.Host/package.json" "src/Kurs.Platform.HttpApi.Host/"
|
||
COPY "src/Kurs.Platform.HttpApi.Host/package-lock.json" "src/Kurs.Platform.HttpApi.Host/"
|
||
WORKDIR /app/src/Kurs.Platform.HttpApi.Host
|
||
RUN abp install-libs
|
||
WORKDIR /app
|
||
|
||
COPY "modules/Kurs.Languages/Kurs.Languages.Application/Kurs.Languages.Application.csproj" "modules/Kurs.Languages/Kurs.Languages.Application/"
|
||
COPY "modules/Kurs.Languages/Kurs.Languages.Application.Contracts/Kurs.Languages.Application.Contracts.csproj" "modules/Kurs.Languages/Kurs.Languages.Application.Contracts/"
|
||
COPY "modules/Kurs.Languages/Kurs.Languages.Domain/Kurs.Languages.Domain.csproj" "modules/Kurs.Languages/Kurs.Languages.Domain/"
|
||
COPY "modules/Kurs.Languages/Kurs.Languages.Domain.Shared/Kurs.Languages.Domain.Shared.csproj" "modules/Kurs.Languages/Kurs.Languages.Domain.Shared/"
|
||
COPY "modules/Kurs.Languages/Kurs.Languages.EntityFrameworkCore/Kurs.Languages.EntityFrameworkCore.csproj" "modules/Kurs.Languages/Kurs.Languages.EntityFrameworkCore/"
|
||
COPY "modules/Kurs.MailQueue/Kurs.MailQueue.csproj" "modules/Kurs.MailQueue/"
|
||
COPY "modules/Kurs.Notifications/Kurs.Notifications.Application/Kurs.Notifications.Application.csproj" "modules/Kurs.Notifications/Kurs.Notifications.Application/"
|
||
COPY "modules/Kurs.Notifications/Kurs.Notifications.Application.Contracts/Kurs.Notifications.Application.Contracts.csproj" "modules/Kurs.Notifications/Kurs.Notifications.Application.Contracts/"
|
||
COPY "modules/Kurs.Notifications/Kurs.Notifications.Domain/Kurs.Notifications.Domain.csproj" "modules/Kurs.Notifications/Kurs.Notifications.Domain/"
|
||
COPY "modules/Kurs.Notifications/Kurs.Notifications.Domain.Shared/Kurs.Notifications.Domain.Shared.csproj" "modules/Kurs.Notifications/Kurs.Notifications.Domain.Shared/"
|
||
COPY "modules/Kurs.Notifications/Kurs.Notifications.EntityFrameworkCore/Kurs.Notifications.EntityFrameworkCore.csproj" "modules/Kurs.Notifications/Kurs.Notifications.EntityFrameworkCore/"
|
||
COPY "modules/Kurs.Sender/Kurs.Sender.csproj" "modules/Kurs.Sender/"
|
||
COPY "modules/Kurs.Settings/Kurs.Settings.Application/Kurs.Settings.Application.csproj" "modules/Kurs.Settings/Kurs.Settings.Application/"
|
||
COPY "modules/Kurs.Settings/Kurs.Settings.Application.Contracts/Kurs.Settings.Application.Contracts.csproj" "modules/Kurs.Settings/Kurs.Settings.Application.Contracts/"
|
||
COPY "modules/Kurs.Settings/Kurs.Settings.Domain/Kurs.Settings.Domain.csproj" "modules/Kurs.Settings/Kurs.Settings.Domain/"
|
||
COPY "modules/Kurs.Settings/Kurs.Settings.Domain.Shared/Kurs.Settings.Domain.Shared.csproj" "modules/Kurs.Settings/Kurs.Settings.Domain.Shared/"
|
||
COPY "modules/Kurs.Settings/Kurs.Settings.EntityFrameworkCore/Kurs.Settings.EntityFrameworkCore.csproj" "modules/Kurs.Settings/Kurs.Settings.EntityFrameworkCore/"
|
||
COPY "src/Kurs.Platform.Application/Kurs.Platform.Application.csproj" "src/Kurs.Platform.Application/"
|
||
COPY "src/Kurs.Platform.Application.Contracts/Kurs.Platform.Application.Contracts.csproj" "src/Kurs.Platform.Application.Contracts/"
|
||
COPY "src/Kurs.Platform.Domain/Kurs.Platform.Domain.csproj" "src/Kurs.Platform.Domain/"
|
||
COPY "src/Kurs.Platform.Domain.Shared/Kurs.Platform.Domain.Shared.csproj" "src/Kurs.Platform.Domain.Shared/"
|
||
COPY "src/Kurs.Platform.EntityFrameworkCore/Kurs.Platform.EntityFrameworkCore.csproj" "src/Kurs.Platform.EntityFrameworkCore/"
|
||
COPY "src/Kurs.Platform.HttpApi/Kurs.Platform.HttpApi.csproj" "src/Kurs.Platform.HttpApi/"
|
||
COPY "src/Kurs.Platform.HttpApi.Client/Kurs.Platform.HttpApi.Client.csproj" "src/Kurs.Platform.HttpApi.Client/"
|
||
COPY "src/Kurs.Platform.HttpApi.Host/Kurs.Platform.HttpApi.Host.csproj" "src/Kurs.Platform.HttpApi.Host/"
|
||
COPY "test/Kurs.Platform.EntityFrameworkCore.Tests/Kurs.Platform.EntityFrameworkCore.Tests.csproj" "test/Kurs.Platform.EntityFrameworkCore.Tests/"
|
||
COPY "test/Kurs.Platform.TestBase/Kurs.Platform.TestBase.csproj" "test/Kurs.Platform.TestBase/"
|
||
RUN dotnet restore "src/Kurs.Platform.HttpApi.Host/Kurs.Platform.HttpApi.Host.csproj"
|
||
|
||
COPY . .
|
||
RUN mkdir -p publish
|
||
RUN dotnet publish "src/Kurs.Platform.HttpApi.Host/Kurs.Platform.HttpApi.Host.csproj" -c Release -o /app/publish --no-restore
|
||
|
||
FROM mcr.microsoft.com/dotnet/aspnet:9.0-alpine AS final
|
||
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false \
|
||
LC_ALL=tr_TR.UTF-8 \
|
||
LANG=tr_TR.UTF-8
|
||
|
||
# icu'lar dotnet culture icin gerekli
|
||
# lib'ler wkhtmltopdf icin gerekli
|
||
RUN apk update
|
||
RUN apk add --no-cache \
|
||
icu-data-full \
|
||
icu-libs \
|
||
libgdiplus \
|
||
libc6-compat \
|
||
libc-dev
|
||
|
||
# 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 ["./Kurs.Platform.HttpApi.Host"]
|