You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Server setup banner always shows the pinned Docker version (28.5.0), not the actually installed one #4722
Take a server that already has Docker installed at a version other than the pinned 28.5.0 — e.g. a fresh Ubuntu 24.04 box with the distro package (apt-get install docker.io currently ships 29.1.3), or any machine where Docker was installed previously.
Add it to Dokploy (Remote Servers → Setup Server), or run the generated setup script manually.
Look at the banner at the top of the setup log:
---------------------------------------------
| CPU Architecture | x86_64
| Operating System | ubuntu 24.04
| Docker | 28.5.0
---------------------------------------------
On the same machine, docker --version reports 29.1.3.
Current vs. Expected behavior
Current: the banner unconditionally prints the hardcoded constant DOCKER_VERSION=28.5.0 from packages/server/src/setup/server-setup.ts (defaultCommand()). That constant is only ever used by the get.docker.com install path, and only when Docker is not yet installed. If Docker is already present, installDocker() leaves it untouched; on the dnf/pacman/apk paths the distro's own version gets installed. In all of those cases the banner still claims 28.5.0.
Expected: the banner reports the Docker version that is actually on the machine when one is installed (e.g. 29.1.3 (already installed)), and the pinned version only when it is really going to be installed (28.5.0 (will be installed)).
Why it matters: Docker 28↔29 version skew between Swarm nodes breaks overlay/gossip federation (related fallout: #3005, #4123). We hit exactly this while building a multi-node Dokploy Swarm cluster: the setup log asserted 28.5.0 while the node was actually running 29.x, which sent the debugging in the wrong direction. An accurate banner surfaces the skew immediately.
I have a fix ready (banner detects an existing installation and reports its real engine version, falling back to the client version when the daemon is unreachable) — PR incoming.
Activity