mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2025-05-09 03:41:58 -04:00

Some checks failed
docker / pack (push) Has been cancelled
docker / deploy (push) Has been cancelled
main / format (push) Has been cancelled
main / test (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-arm) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-musl-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, osx-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, osx-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-x86) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, linux-arm) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, linux-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, linux-musl-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, linux-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, osx-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, osx-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, win-arm64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, win-x64) (push) Has been cancelled
main / pack (DiscordChatExporter.Gui, DiscordChatExporter, win-x86) (push) Has been cancelled
main / release (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-arm) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-musl-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, linux-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, osx-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, osx-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Cli, DiscordChatExporter.Cli, win-x86) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, linux-arm) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, linux-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, linux-musl-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, linux-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, osx-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, osx-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, win-arm64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, win-x64) (push) Has been cancelled
main / deploy (DiscordChatExporter.Gui, DiscordChatExporter, win-x86) (push) Has been cancelled
main / notify (push) Has been cancelled
63 lines
2.6 KiB
Docker
63 lines
2.6 KiB
Docker
# -- Build
|
|
# Specify the platform here so that we pull the SDK image matching the host platform,
|
|
# instead of the target platform specified during build by the `--platform` option.
|
|
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build
|
|
|
|
# Expose the target architecture set by the `docker build --platform` option, so that
|
|
# we can build the assembly for the correct platform.
|
|
ARG TARGETARCH
|
|
|
|
# Allow setting the assembly version from the build command
|
|
ARG VERSION=0.0.0
|
|
|
|
WORKDIR /tmp/app
|
|
|
|
COPY favicon.ico .
|
|
COPY NuGet.config .
|
|
COPY Directory.Build.props .
|
|
COPY DiscordChatExporter.Core DiscordChatExporter.Core
|
|
COPY DiscordChatExporter.Cli DiscordChatExporter.Cli
|
|
|
|
# Publish a self-contained assembly so we can use a slimmer runtime image
|
|
RUN dotnet publish DiscordChatExporter.Cli \
|
|
-p:Version=$VERSION \
|
|
-p:CSharpier_Bypass=true \
|
|
--configuration Release \
|
|
--self-contained \
|
|
--use-current-runtime \
|
|
--arch $TARGETARCH \
|
|
--output DiscordChatExporter.Cli/bin/publish/
|
|
|
|
# -- Run
|
|
# Use `runtime-deps` instead of `runtime` because we have a self-contained assembly
|
|
FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/runtime-deps:9.0-alpine AS run
|
|
|
|
LABEL org.opencontainers.image.title="DiscordChatExporter.Cli"
|
|
LABEL org.opencontainers.image.description="DiscordChatExporter is an application that can be used to export message history from any Discord channel to a file."
|
|
LABEL org.opencontainers.image.authors="tyrrrz.me"
|
|
LABEL org.opencontainers.image.source="https://github.com/Tyrrrz/DiscordChatExporter"
|
|
LABEL org.opencontainers.image.licenses="MIT"
|
|
|
|
# Alpine image doesn't come with the ICU libraries pre-installed, so we need to install them manually.
|
|
# We need the full ICU data because we allow the user to specify any locale for formatting purposes.
|
|
RUN apk add --no-cache icu-libs icu-data-full
|
|
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
|
|
ENV LC_ALL=en_US.UTF-8
|
|
ENV LANG=en_US.UTF-8
|
|
|
|
# Alpine is missing tzdata, which we need to support timezones
|
|
RUN apk add --no-cache tzdata
|
|
|
|
# Use a non-root user to ensure that the files shared with the host are accessible by the host user
|
|
# https://github.com/Tyrrrz/DiscordChatExporter/issues/851
|
|
# https://github.com/Tyrrrz/DiscordChatExporter/issues/1174
|
|
RUN apk add --no-cache su-exec
|
|
RUN addgroup -S -g 1000 dce && adduser -S -H -G dce -u 1000 dce
|
|
|
|
# This directory is exposed to the user for mounting purposes, so it's important that it always
|
|
# stays the same for backwards compatibility.
|
|
WORKDIR /out
|
|
|
|
COPY --from=build /tmp/app/DiscordChatExporter.Cli/bin/publish /opt/app
|
|
COPY docker-entrypoint.sh /opt/app
|
|
ENTRYPOINT ["/opt/app/docker-entrypoint.sh"]
|