Upgrading Docker to 18.09 in the machine executor?

Hi,

We’re building a NodeJS app with dependencies on private Github repos.
We’ve set up a Github machine user with access to the repos and added its ssh key to the Circle build.
In order to pass the required ssh keys to the Docker build process, we use the new Buildkit syntax (RUN --mount=type=ssh) in Docker 18.09
We were using the Docker executor, but it looks like setup_remote_docker doesn’t have 18.09 yet, so I switched to the machine executor with the circleci/classic:edge image.
I’m trying to install Docker 18.09 using the official Docker convenience script, but running into a number of issues :

  • The image is quite old and apt-get update fails because of a packagecloud.io GPG key issue (referenced in /etc/apt/sources.list.d/circleci_trusty.list)
  • The official Docker install script only sets up 18.06 for trusty, I’m not sure how to force it to 18.09 or if that even exists for trusty.
  • In this image, Docker is originally installed in hacky way by /opt/circleci-provision-scripts/docker.sh, installing a patched binary at /usr/bin/docker and starting Docker with custom options, so I’m not even sure vanilla Docker would work out of the box on CircleCI VMs.

Has someone done this or found a workaround ?
Of course everything would be SO much simpler if the docker executor were up to date, or if we could use more recent machine executor VMs…

Hi there. :slight_smile:

I’m seeing 18.09 remote_docker versions in both stable and edge, you can see all available versions here https://circleci.com/docs/2.0/building-docker-images/#docker-version

The docs are a little out of date in the example, but PRs are welcome

Hi,

Thanks for the help but I get this :

failed to create host: rpc error: code = Unknown desc = image docker-18.09.3 is not supported

Using :

- setup_remote_docker:
          version: 18.09.3

It seems there are a few other reports of this problem.

I may have been misinformed and our docs may need an update. Investigating.

Hi, any update on this ?