Indeed, great catch! Many thanks for reporting this.
The instructions that install Docker into Gitpod’s default workspace image are here:
Now, while these instructions would seem to always install the latest available Docker version, our custom Docker build system Dazzle caches every “layer” (i.e. every Dockerfile instruction between
LABEL dazzle/layer=tool-docker and the next such LABEL) independently.
So, what likely happened is that Dazzle built this layer when
19.03.13 was the latest available Docker version, and is now keeping that (now outdated) version in cache “forever”.
The solution is to “invalidate” the Dazzle cache for this “layer”, simply by modifying at least one of the Dockerfile instructions in that “layer”.
The way we’ve solved this problem to keep other important tools up-to-date was to either:
Add an explicit version string to the Dockerfile instructions (e.g. NODE_VERSION=14.15.4) and then have Autofix automatically send a Pull Request when a newer version is available (with a custom-built updater like upgrade-nvm-tools.js and a cronjob)
Or, simply add an unused
ENV variable counter (e.g. TRIGGER_BREW_REBUILD=1) that we manually increment every time we want to invalidate & rebuild a given Dazzle layer
In this case, I’d personally go with option 2. and add a
ENV TRIGGER_DOCKER_REBUILD=1 into the aforementioned Docker installation instructions, unless you’re interested in teaching Autofix how to determine the latest available Docker version (and e.g. implement a
update-docker.js script under autofix/fixers/ that checks