GitLab Runner with Docker executor: “client version 1.43 is too old”

Setting up a Docker image build in my GitLab ci I got this error:

ERROR: Error response from daemon: client version 1.43 is too old. Minimum supported API version is 1.44, please upgrade your client to a newer version: driver not connecting

Docker version on the VM running the GitLab Runner:

$ docker --version
Docker version 29.1.3, build f52814d

Versions in my .gitlab-ci.yml:

image: docker:24.0.5-cli
services:
  - docker:24.0.5-dind

Updated both to match the Docker version on the VM resolved the issue.

Oracle Container Registry logon failing with correct Oracle account credentials

docker login container-registry.oracle.com with your Oracle SSO logon no longer works after 30/6/2025, you need to create an Auth Token and use that as your password. See this banner across the top of the Container Registry site:

  • Go to container-registry.oracle.com and logon
  • Click your user account top right
  • From the dropdown menu, select Auth Token

Use this auth token value in place of your SSO password when logging on with docker login and this should work as expected.

This is described in the Oracle docs here.

Configuring nginx virtual hosts with sites-available / sites-enabled

I recently ran into an issue with how /etc/nginx/sites-enabled is used (or not) depending what nginx version you’re running on, or more likely according to this post, whether you’re running nginx on Debian/Ubuntu or the official nginx package.

The difference (which is pretty significant if you’re not expecting it), is that:

  • Debian/Ubuntu versions for nginx have sites-enabled included in nginx.conf by default
  • The official upstream nginx package does not

What this means is on Debian/Ubuntu, in /etc/nginx/nginx.conf you’ll have this include:

include /etc/nginx/sites-enabled/*;

but it’s missing if you run the upstream nginx package, like what seems to be included in the Docker image nginx:latest.

In my case running the Docker image nginx:latest every GET request was getting a 404 and the only clue was in my error.log each request was attempting to serve files from a default /usr/share/nginx/html folder, which is definitely not what was configured as my root in the config in /etc/nginx/sites-enabled:

open() "/usr/share/nginx/html/[url-request-here] HTTP/1.1" failed (2: No such file or directory)

Once I worked out what the issue was I just added the include line for sites-enabled.