mirror of
https://github.com/Finsys/dockhand.git
synced 2026-06-17 19:09:33 +03:00
fix: propagate DOCKER_API_VERSION to updater sidecar
The dockhand-updater image ships Docker CLI 29.2.1 (API 1.53), which fails on hosts running older Docker daemons (e.g. Synology DSM with Docker 24.0.2 / API 1.43). Every docker command in update.sh returns "client version 1.53 is too new". Query the daemon's API version via /version and pass it as DOCKER_API_VERSION to the updater container env. If the env var is already set on the main container, forward that instead. Fixes #759
This commit is contained in:
committed by
Jarek Krochmalski
parent
0b3658793a
commit
a6016afdaa
@@ -371,6 +371,22 @@ export const POST: RequestHandler = async ({ request, cookies }) => {
|
||||
...networkEnvVars
|
||||
];
|
||||
|
||||
// Pass Docker API version so the updater CLI speaks a compatible version.
|
||||
// Without this, newer CLI versions (e.g. API 1.53) fail against older
|
||||
// daemons (e.g. Synology DSM shipping API 1.43).
|
||||
const dockerApiVersion = process.env.DOCKER_API_VERSION;
|
||||
if (dockerApiVersion) {
|
||||
updaterEnv.push(`DOCKER_API_VERSION=${dockerApiVersion}`);
|
||||
} else {
|
||||
const versionRes = await localDockerFetch('/version');
|
||||
if (versionRes.ok) {
|
||||
const vInfo = await versionRes.json() as { ApiVersion?: string };
|
||||
if (vInfo.ApiVersion) {
|
||||
updaterEnv.push(`DOCKER_API_VERSION=${vInfo.ApiVersion}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Configure updater's Docker access based on connection type
|
||||
const tcpHost = getDockerTcpHost();
|
||||
const updaterHostConfig: Record<string, unknown> = { AutoRemove: true };
|
||||
|
||||
Reference in New Issue
Block a user