mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
56 lines
1.6 KiB
Desktop File
56 lines
1.6 KiB
Desktop File
ARG DOTNET_VERSION=10.0
|
|
ARG NODE_VERSION=20
|
|
|
|
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\""]
|