From 685e52d53f1ddb58431f1b603c25e0e4bd9d2740 Mon Sep 17 00:00:00 2001 From: JustArchi Date: Sat, 7 Oct 2017 19:54:23 +0200 Subject: [PATCH] Docker: make it possible to pass arguments --- ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh | 6 +++++- ArchiSteamFarm/scripts/generic/ArchiSteamFarm.cmd | 2 +- ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh | 8 +++++++- Dockerfile | 5 +++-- Dockerfile.Service | 3 +-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh index ea8ecd929..0b190f102 100755 --- a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh +++ b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh @@ -2,9 +2,13 @@ set -eu cd "$(dirname "$(readlink -f "$0")")" +if [[ -z "${ASF_ARGS-}" ]]; then + ASF_ARGS="" +fi + trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT while [[ -f ArchiSteamFarm.dll ]]; do - dotnet ArchiSteamFarm.dll --service # We will abort the script if ASF exits with an error + dotnet ArchiSteamFarm.dll --service $ASF_ARGS # We will abort the script if ASF exits with an error sleep 1 done diff --git a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.cmd b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.cmd index 51f9a5a84..5fa61d8b5 100644 --- a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.cmd +++ b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.cmd @@ -1,3 +1,3 @@ @echo off pushd %~dp0 -dotnet ArchiSteamFarm.dll +dotnet %ASF_ARGS% ArchiSteamFarm.dll diff --git a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh index 1711f99eb..1740e7fd5 100644 --- a/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh +++ b/ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh @@ -1,4 +1,10 @@ #!/bin/bash set -eu cd "$(dirname "$(readlink -f "$0")")" -dotnet ArchiSteamFarm.dll + +if [[ -z "${ASF_ARGS-}" ]]; then + ASF_ARGS="" +fi + +# We don't need our shell anymore, just replace the current process instead of starting a new one +exec dotnet $ASF_ARGS ArchiSteamFarm.dll diff --git a/Dockerfile b/Dockerfile index 5ac9052ff..f538606ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ FROM microsoft/dotnet:2.0-sdk AS build-env WORKDIR /app COPY . ./ -RUN dotnet publish ArchiSteamFarm -c Release -o out /nologo +RUN dotnet publish ArchiSteamFarm -c Release -o out /nologo && \ + cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm.sh" "ArchiSteamFarm/out/ArchiSteamFarm.sh" FROM microsoft/dotnet:2.0-runtime WORKDIR /app COPY --from=build-env /app/ArchiSteamFarm/out ./ -ENTRYPOINT ["dotnet", "ArchiSteamFarm.dll"] +ENTRYPOINT ["./ArchiSteamFarm.sh"] diff --git a/Dockerfile.Service b/Dockerfile.Service index 86e4035cf..87a548c24 100644 --- a/Dockerfile.Service +++ b/Dockerfile.Service @@ -3,8 +3,7 @@ WORKDIR /app COPY . ./ RUN dotnet publish ArchiSteamFarm -c Release -o out /nologo && \ echo "generic" > "ArchiSteamFarm/out/ArchiSteamFarm.version" && \ - cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh" && \ - chmod +x "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh" + cp "ArchiSteamFarm/scripts/generic/ArchiSteamFarm-Service.sh" "ArchiSteamFarm/out/ArchiSteamFarm-Service.sh" FROM microsoft/dotnet:2.0-runtime WORKDIR /app