From 14f47af74b449807307d461e32b00f13504e1ac3 Mon Sep 17 00:00:00 2001 From: Kev Date: Sun, 19 Jul 2026 23:02:16 -0400 Subject: [PATCH] =?UTF-8?q?Dockerfile:=20install=20openssh-client=20?= =?UTF-8?q?=E2=80=94=20rsync=20cannot=20exec=20ssh=20without=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The off-box push failed with 'rsync: Failed to exec ssh: No such file or directory (2)'. The container had rsync and pg_dump from S62 but no ssh binary, and rsync shells out to ssh for every remote transport. The dump itself succeeded, so this failed AFTER a good backup and reads like a network/auth problem when it is a missing package. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01SmNjJAwEnqHPtXbvSZR8kA --- Dockerfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d7c225d..68775de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -27,10 +27,14 @@ FROM node:20-alpine AS runner WORKDIR /app # curl — /api/health smoke check (Coolify HEALTHCHECK). -# postgresql-client (pg_dump/pg_restore) + rsync + bash — the nightly DB backup +# postgresql-client (pg_dump/pg_restore) + rsync + openssh-client + bash — the +# nightly DB backup. openssh-client (Session 64) is NOT optional: rsync shells +# out to `ssh` for any remote transport, and without it the off-box push dies +# with "Failed to exec ssh: No such file or directory" AFTER a successful dump — +# which reads like a network problem and isn't one. # (scripts/backup-db.sh) runs INSIDE this container, where SUPABASE_DB_URL and # the Supabase network are available. See docs/BACKUP-RUNBOOK.md. -RUN apk add --no-cache curl tini bash postgresql-client rsync +RUN apk add --no-cache curl tini bash postgresql-client rsync openssh-client # PM2 is installed globally so the entrypoint can call `pm2 start` to # boot all three pollers (NBA / WNBA / MLB) alongside the Express API.