diff --git a/docker/mistserver.Dockerfile b/docker/mistserver.Dockerfile index 38a39584..ddb112b7 100644 --- a/docker/mistserver.Dockerfile +++ b/docker/mistserver.Dockerfile @@ -7,7 +7,13 @@ ENV STREAMPLACE_URL $STREAMPLACE_URL RUN export LOCAL_URL="$(echo $STREAMPLACE_URL | sed 's/-cloudflare//')" && echo "downloading $LOCAL_URL" && cd /usr/local/bin && curl -L "$LOCAL_URL" | tar xzv RUN apt-get update && apt-get install -y curl -RUN cd /usr/bin && curl -o - https://r.mistserver.org/dl/mistserver_64V3.7.tar.gz | tar xzv +# Download to a file with retries, then extract (see mistserver.ghcr.Dockerfile): +# piping curl into tar corrupts extraction on a truncated transfer, and +# r.mistserver.org hiccups intermittently. +RUN cd /usr/bin && \ + curl -fL --retry 12 --retry-all-errors --retry-delay 10 --retry-max-time 240 -o /tmp/mistserver.tar.gz https://r.mistserver.org/dl/mistserver_64V3.7.tar.gz && \ + tar xzvf /tmp/mistserver.tar.gz && \ + rm /tmp/mistserver.tar.gz RUN mkdir -p /config ADD ./docker/mistserver.json /config/mistserver.json CMD ["MistController", "-c", "/config/mistserver.json"] diff --git a/docker/mistserver.ghcr.Dockerfile b/docker/mistserver.ghcr.Dockerfile index 3e5e2b2a..6c68a782 100644 --- a/docker/mistserver.ghcr.Dockerfile +++ b/docker/mistserver.ghcr.Dockerfile @@ -6,7 +6,14 @@ FROM --platform=linux/amd64 ubuntu:24.04 RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/* COPY build-linux-amd64/streamplace /usr/local/bin/streamplace RUN chmod +x /usr/local/bin/streamplace -RUN cd /usr/bin && curl -L -o - https://r.mistserver.org/dl/mistserver_64V3.7.tar.gz | tar xzv +# Download to a file with retries, then extract. Piping curl straight into tar +# corrupts the extraction when the transfer is truncated, and r.mistserver.org +# hiccups intermittently (flaked CI repeatedly), so retry transient failures and +# only untar a complete download. +RUN cd /usr/bin && \ + curl -fL --retry 12 --retry-all-errors --retry-delay 10 --retry-max-time 240 -o /tmp/mistserver.tar.gz https://r.mistserver.org/dl/mistserver_64V3.7.tar.gz && \ + tar xzvf /tmp/mistserver.tar.gz && \ + rm /tmp/mistserver.tar.gz RUN mkdir -p /config ADD mistserver.json /config/mistserver.json CMD ["MistController", "-c", "/config/mistserver.json"]