# Build FROM mcr.microsoft.com/dotnet/sdk:7.0-alpine AS build WORKDIR /build COPY favicon.ico ./ COPY NuGet.config ./ COPY Directory.Build.props ./ COPY DiscordChatExporter.Core ./DiscordChatExporter.Core COPY DiscordChatExporter.Cli ./DiscordChatExporter.Cli RUN dotnet publish DiscordChatExporter.Cli \ --self-contained \ --use-current-runtime \ --configuration Release \ --output ./publish # Run FROM mcr.microsoft.com/dotnet/runtime-deps:7.0-alpine # tzdata is needed for DateTimeOffset.ToLocalTime (for TimeZoneInfo.Local, to be precise) RUN apk add --no-cache tzdata RUN adduser \ --disabled-password \ --no-create-home \ dce USER dce COPY --from=build /build/publish /opt/discord_chat_exporter # Need to keep this as /out for backwards compatibility with documentation. # A lot of people have this directory mounted in their scripts files, so # changing it would break existing workflows. WORKDIR /out # Having it in PATH is convenient for interactive shell sessions, # which may be useful for debugging. ENV PATH="$PATH:/opt/discord_chat_exporter" ENTRYPOINT ["DiscordChatExporter.Cli"]