Files
Entkube/Dockerfile
Nils Blomgren ffe41b4413 publish1
2026-06-07 21:09:37 +02:00

42 lines
1.1 KiB
Docker

FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY Directory.Build.props ./
COPY src/EntKube.Web/EntKube.Web.csproj src/EntKube.Web/
COPY src/EntKube.Web.Client/EntKube.Web.Client.csproj src/EntKube.Web.Client/
RUN dotnet restore src/EntKube.Web/EntKube.Web.csproj
COPY src/ src/
RUN dotnet publish src/EntKube.Web/EntKube.Web.csproj \
--no-restore \
-c Release \
-o /app/publish
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
WORKDIR /app
# libgit2sharp bundles its native lib, but needs libssl/libcurl on Debian
RUN apt-get update && apt-get install -y --no-install-recommends \
libssl3 \
libcurl4 \
&& rm -rf /var/lib/apt/lists/*
# Run as non-root
RUN addgroup --system appgroup && adduser --system --ingroup appgroup appuser
RUN mkdir -p /app/Data && chown appuser:appgroup /app/Data
COPY --from=build /app/publish .
RUN chown -R appuser:appgroup /app
USER appuser
ENV ASPNETCORE_URLS=http://+:8080
ENV ASPNETCORE_ENVIRONMENT=Production
# SQLite database lives here — mount a persistent volume at /app/Data
VOLUME ["/app/Data"]
EXPOSE 8080
ENTRYPOINT ["dotnet", "EntKube.Web.dll"]