mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 15:38:45 -07:00
8e12db660b
.NET 8 and 9 reach end of support on 2026-11-10; .NET 10 is the LTS release (supported until November 2028). - net9.0 -> net10.0 for every server, service, gateway, test and tool project - ASP.NET Core / EF Core / SignalR Redis 10.0.13, Npgsql EF 10.0.3, Serilog.AspNetCore 10.0.0 - Dockerfile / Dockerfile.service: sdk and aspnet 10.0 images - release workflow: setup-dotnet 10.0.x - Jenkins build agent: dotnet-sdk-10.0 (was 8.0); the ClientMod still targets net6.0, which MelonLoader loads - README / architecture docs, .gitignore data paths DorkNet.AdminMobile (MAUI) stays on net9.0 for now: building it needs the Android/iOS workloads.
56 lines
1.6 KiB
Desktop File
56 lines
1.6 KiB
Desktop File
ARG DOTNET_VERSION=10.0
|
|
ARG NODE_VERSION=22
|
|
|
|
FROM node:${NODE_VERSION}-alpine AS admin-ui
|
|
WORKDIR /ui
|
|
COPY DorkNet.Server/admin-ui/package.json DorkNet.Server/admin-ui/package-lock.json* ./
|
|
RUN npm install --no-fund --no-audit --loglevel=error
|
|
COPY DorkNet.Server/admin-ui/ ./
|
|
RUN mkdir -p /wwwroot/admin \
|
|
&& npm run build
|
|
|
|
FROM node:${NODE_VERSION}-alpine AS site
|
|
WORKDIR /ui
|
|
COPY DorkNet.Server/site/package.json DorkNet.Server/site/package-lock.json* ./
|
|
RUN npm install --no-fund --no-audit --loglevel=error
|
|
COPY DorkNet.Server/site/ ./
|
|
RUN mkdir -p /wwwroot/site \
|
|
&& npm run build
|
|
|
|
FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} AS build
|
|
ARG PROJECT_PATH
|
|
WORKDIR /src
|
|
|
|
COPY . .
|
|
COPY --from=admin-ui /wwwroot/admin/ DorkNet.Server/wwwroot/admin/
|
|
COPY --from=site /wwwroot/site/ DorkNet.Server/wwwroot/site/
|
|
RUN dotnet publish "${PROJECT_PATH}" -c Release \
|
|
-p:SkipAdminUIBuild=true \
|
|
-p:DorkNetServiceContainerPublish=true \
|
|
-o /app/publish
|
|
|
|
FROM mcr.microsoft.com/dotnet/aspnet:${DOTNET_VERSION} AS runtime
|
|
ARG APP_DLL
|
|
WORKDIR /app
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
USER app
|
|
|
|
COPY --from=build --chown=app:app /app/publish .
|
|
|
|
ENV ASPNETCORE_ENVIRONMENT=Production \
|
|
ASPNETCORE_URLS=http://0.0.0.0:8080 \
|
|
DOTNET_RUNNING_IN_CONTAINER=true \
|
|
DOTNET_PRINT_TELEMETRY_MESSAGE=false \
|
|
APP_DLL=${APP_DLL}
|
|
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=3 \
|
|
CMD curl --fail --silent http://localhost:8080/healthz || exit 1
|
|
|
|
ENTRYPOINT ["sh", "-c", "dotnet \"$APP_DLL\""]
|