FROM mcr.microsoft.com/dotnet/core/sdk as builder ENV DOTNET_CLI_TELEMETRY_OPTOUT 1 RUN apt-get update \ && apt-get -y install jq COPY disable-deployed-build.patch /tmp/ ARG CACHEBUST=1 RUN OSU_VERSION=$(curl -s https://api.github.com/repos/ppy/osu/releases/latest | jq -r .tag_name) \ && git clone --depth=1 --single-branch -b ${OSU_VERSION} https://github.com/ppy/osu \ && cd osu \ && curl https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/games/osu-lazer/bypass-tamper-detection.patch | git apply \ && git apply /tmp/disable-deployed-build.patch \ && dotnet publish \ -c Release \ -r linux-x64 \ --self-contained true \ -o /opt/osu/ \ -p:PublishTrimmed=true \ -p:Version=${OSU_VERSION} \ osu.Desktop FROM mcr.microsoft.com/dotnet/core/runtime-deps RUN apt-get update \ && apt-get -y install --no-install-recommends \ ffmpeg \ libegl1-mesa-dev \ libgbm1 \ libgl1 \ pulseaudio \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /opt/osu/ /opt/osu/ RUN adduser --disabled-password --gecos '' osu USER osu ENTRYPOINT ["/opt/osu/osu!"]