mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-20 01:46:11 +00:00
* Upgrade to .NET 6 .NET 5 has gone EOL, so move to a supported version. * Upgrade Docker container as well * Update docs for .NET 6 * Re-add hack for System.IO.Pipelines * Bump dependency versions * Update the deps of the other projects too * Only declare TargetFramework once * Dockerfile: also copy over Directory.Build.props * Cake: pick up target framework automatically * Upgrade Cake as well
44 lines
1.7 KiB
Docker
44 lines
1.7 KiB
Docker
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:6.0 AS build
|
|
|
|
# See for all possible platforms
|
|
# https://github.com/containerd/containerd/blob/master/platforms/platforms.go#L17
|
|
ARG TARGETARCH
|
|
|
|
ARG VERSIONSUFFIX="docker"
|
|
|
|
WORKDIR /source
|
|
|
|
# Copy csproj and restore.
|
|
COPY src/Impostor.Server/Impostor.Server.csproj ./src/Impostor.Server/Impostor.Server.csproj
|
|
COPY src/Impostor.Api/Impostor.Api.csproj ./src/Impostor.Api/Impostor.Api.csproj
|
|
COPY src/Impostor.Hazel/Hazel/Hazel.csproj ./src/Impostor.Hazel/Hazel/Hazel.csproj
|
|
COPY src/Directory.Build.props ./src/Directory.Build.props
|
|
|
|
RUN case "$TARGETARCH" in \
|
|
amd64) NETCORE_PLATFORM='linux-x64';; \
|
|
arm64) NETCORE_PLATFORM='linux-arm64';; \
|
|
arm) NETCORE_PLATFORM='linux-arm';; \
|
|
*) echo "unsupported architecture"; exit 1 ;; \
|
|
esac && \
|
|
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Server/Impostor.Server.csproj && \
|
|
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Api/Impostor.Api.csproj && \
|
|
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Hazel/Hazel/Hazel.csproj
|
|
|
|
# Copy everything else.
|
|
COPY src/. ./src/
|
|
RUN case "$TARGETARCH" in \
|
|
amd64) NETCORE_PLATFORM='linux-x64';; \
|
|
arm64) NETCORE_PLATFORM='linux-arm64';; \
|
|
arm) NETCORE_PLATFORM='linux-arm';; \
|
|
*) echo "unsupported architecture"; exit 1 ;; \
|
|
esac && \
|
|
[[ $VERSIONSUFFIX = "none" ]] && VERSIONSUFFIX=; \
|
|
dotnet publish -c release -o /app -r "$NETCORE_PLATFORM" -p:VersionSuffix="$VERSIONSUFFIX" --no-restore ./src/Impostor.Server/Impostor.Server.csproj
|
|
|
|
# Final image.
|
|
FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/runtime:6.0
|
|
WORKDIR /app
|
|
COPY --from=build /app ./
|
|
EXPOSE 22023/udp
|
|
ENTRYPOINT ["./Impostor.Server"]
|