Improve COPY in our dockerfiles

https://docs.docker.com/reference/dockerfile/#copy---link

> If you don't rely on the behavior of following symlinks in the destination path, using --link is always recommended. The performance of --link is equivalent or better than the default behavior and, it creates much better conditions for cache reuse.

Also recommended in aspnet samples: https://github.com/dotnet/dotnet-docker/blob/main/samples/aspnetapp/Dockerfile
This commit is contained in:
Łukasz Domeradzki
2024-11-21 22:33:32 +01:00
parent 448cdda23d
commit 2d4ee1c9f8
2 changed files with 26 additions and 26 deletions

View File

@@ -2,8 +2,8 @@ ARG IMAGESUFFIX
FROM --platform=$BUILDPLATFORM node:lts${IMAGESUFFIX} AS build-node
WORKDIR /app/ASF-ui
COPY ASF-ui .
COPY .git/modules/ASF-ui /app/.git/modules/ASF-ui
COPY --link ASF-ui .
COPY --link .git/modules/ASF-ui /app/.git/modules/ASF-ui
RUN <<EOF
set -eu
@@ -23,16 +23,16 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
ENV DOTNET_NOLOGO=true
ENV PLUGINS_BUNDLED="ArchiSteamFarm.OfficialPlugins.ItemsMatcher ArchiSteamFarm.OfficialPlugins.MobileAuthenticator ArchiSteamFarm.OfficialPlugins.SteamTokenDumper"
WORKDIR /app
COPY --from=build-node /app/ASF-ui/dist ASF-ui/dist
COPY ArchiSteamFarm ArchiSteamFarm
COPY ArchiSteamFarm.OfficialPlugins.ItemsMatcher ArchiSteamFarm.OfficialPlugins.ItemsMatcher
COPY ArchiSteamFarm.OfficialPlugins.MobileAuthenticator ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
COPY ArchiSteamFarm.OfficialPlugins.SteamTokenDumper ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
COPY resources resources
COPY .editorconfig .editorconfig
COPY Directory.Build.props Directory.Build.props
COPY Directory.Packages.props Directory.Packages.props
COPY LICENSE.txt LICENSE.txt
COPY --from=build-node --link /app/ASF-ui/dist ASF-ui/dist
COPY --link ArchiSteamFarm ArchiSteamFarm
COPY --link ArchiSteamFarm.OfficialPlugins.ItemsMatcher ArchiSteamFarm.OfficialPlugins.ItemsMatcher
COPY --link ArchiSteamFarm.OfficialPlugins.MobileAuthenticator ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
COPY --link ArchiSteamFarm.OfficialPlugins.SteamTokenDumper ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
COPY --link resources resources
COPY --link .editorconfig .editorconfig
COPY --link Directory.Build.props Directory.Build.props
COPY --link Directory.Packages.props Directory.Packages.props
COPY --link LICENSE.txt LICENSE.txt
RUN --mount=type=secret,id=ASF_PRIVATE_SNK --mount=type=secret,id=STEAM_TOKEN_DUMPER_TOKEN <<EOF
set -eu
@@ -94,7 +94,7 @@ LABEL maintainer="JustArchi <JustArchi@JustArchi.net>" \
org.opencontainers.image.description="C# application with primary purpose of idling Steam cards from multiple accounts simultaneously"
EXPOSE 1242
COPY --from=build-dotnet /app/out /asf
COPY --from=build-dotnet --link /app/out /asf
RUN <<EOF
set -eu