From 03888c8f22acc206e17c6c401be9cea9793c8007 Mon Sep 17 00:00:00 2001 From: Andrey Cheptsov Date: Thu, 12 Mar 2026 10:24:13 +0100 Subject: [PATCH] Upgrade litestream 0.5.0 to 0.5.9 and simplify entrypoint restore logic Litestream 0.5.9 reduces Go dependency CVEs from 24 to 7. The entrypoint now uses `restore -if-replica-exists` instead of parsing error messages, consistent with the enterprise entrypoint and resilient to future litestream error message changes. Co-Authored-By: Claude Opus 4.6 --- docker/server/entrypoint.sh | 12 +++--------- docker/server/release/Dockerfile | 4 ++-- docker/server/stgn/Dockerfile | 4 ++-- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/docker/server/entrypoint.sh b/docker/server/entrypoint.sh index 6a87468490..8cd67fd260 100644 --- a/docker/server/entrypoint.sh +++ b/docker/server/entrypoint.sh @@ -13,15 +13,9 @@ if [[ -z "${LITESTREAM_REPLICA_URL}" ]]; then exec dstack server --host 0.0.0.0 else if [[ ! -f "$DB_PATH" ]]; then - echo "Attempting Litestream restore..." - if ! output=$(litestream restore -o "$DB_PATH" "$LITESTREAM_REPLICA_URL" 2>&1); then - if echo "$output" | grep -qiE "cannot calc restore plan"; then - echo "No replica snapshots found; starting with empty database." - else - echo "$output" >&2 - exit 1 - fi - fi + echo "Starting db restore" + litestream restore -if-replica-exists -o "$DB_PATH" "$LITESTREAM_REPLICA_URL" + echo "Finished db restore" fi exec litestream replicate -exec "dstack server --host 0.0.0.0" "$DB_PATH" "$LITESTREAM_REPLICA_URL" fi diff --git a/docker/server/release/Dockerfile b/docker/server/release/Dockerfile index ca94a26f2e..a88439d61e 100644 --- a/docker/server/release/Dockerfile +++ b/docker/server/release/Dockerfile @@ -15,8 +15,8 @@ RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* RUN if [ $(uname -m) = "aarch64" ]; then ARCH="arm64"; else ARCH="x86_64"; fi && \ - curl https://github.com/benbjohnson/litestream/releases/download/v0.5.0/litestream-0.5.0-linux-$ARCH.deb -O -L && \ - dpkg -i litestream-0.5.0-linux-$ARCH.deb + curl https://github.com/benbjohnson/litestream/releases/download/v0.5.9/litestream-0.5.9-linux-$ARCH.deb -O -L && \ + dpkg -i litestream-0.5.9-linux-$ARCH.deb ADD https://astral.sh/uv/install.sh /uv-installer.sh RUN sh /uv-installer.sh && rm /uv-installer.sh diff --git a/docker/server/stgn/Dockerfile b/docker/server/stgn/Dockerfile index 079eb7be47..b2c4f96370 100644 --- a/docker/server/stgn/Dockerfile +++ b/docker/server/stgn/Dockerfile @@ -13,8 +13,8 @@ RUN apt-get update && apt-get install -y \ && rm -rf /var/lib/apt/lists/* RUN if [ $(uname -m) = "aarch64" ]; then ARCH="arm64"; else ARCH="x86_64"; fi && \ - curl https://github.com/benbjohnson/litestream/releases/download/v0.5.0/litestream-0.5.0-linux-$ARCH.deb -O -L && \ - dpkg -i litestream-0.5.0-linux-$ARCH.deb + curl https://github.com/benbjohnson/litestream/releases/download/v0.5.9/litestream-0.5.9-linux-$ARCH.deb -O -L && \ + dpkg -i litestream-0.5.9-linux-$ARCH.deb ADD https://astral.sh/uv/install.sh /uv-installer.sh RUN sh /uv-installer.sh && rm /uv-installer.sh