Docker/Kubernetes

The executor requires OSType=windows, but Docker Engine supports only OSType=linux

Docker-OSTypelinux

GitLab Runner can use Docker to run jobs on user-provided images. This is possible with the use of a Docker executor. The Docker executor when used with GitLab CI, connects to Docker Engine and runs each build in a separate and isolated container using the predefined image that is set up in .gitlab-ci.yml and in accordance in config.toml. That way you can have a simple and reproducible build environment that can also run on your workstation. The added benefit is that you can test all the commands that we will explore later from your shell, rather than having to test them on a dedicated CI server. Kindly refer to some of these related guides: How to install Git on macOS, how to clone a repository and install software from GitHub on Windows, Panic: Failed to register the GitLab-runner, you may be having network issues,

The Docker executor when used with GitLab CI, connects to Docker Engine and runs each build in a separate and isolated container using the predefined image that is set up in it.

As you can see from the image below, I wasn’t using the “Docker-Windows” executor, but I was using the “Windows” executor only. When “windows” is used only, then the daemon should be Linux Container

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "windows10 runner with Docker-windows"
  url = "https://gitlab.com/"
  token = "pxxxxxxxxxxxxn"
  executor = "docker"

This gave rise to the following error displayed below. Also, ensure you are using the right container environment. Kindly refer to this troubleshooting guide for more information “Docker image OS” windows” cannot be used on this platform: No matching manifest for linux/amd64 in the manifest list entries from Microsoft Docker Registry“.

Capture

Solution – Ensure you are running the right executor

The executor was is “docker-windows“, this is because, the GitLab-runner is installed on Windows, and also we are using the Windows container. See the table below for more information.

Screenshot-2021-10-16-at-23.54.03

As you can see below, we have entered the right executor in the config.toml file. After this is done, ensure to restart both the GitLab-Runner and the Docker-Desktop. Kindly refer to this guide on “how to install, register and start GitLab Runner on Windows“.

concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "windows10 runner with Docker-windows"
  url = "https://gitlab.com/"
  token = "pxxxxxxxxxxxxn"
  executor = "docker-windows"

Kindly refer to these related guides: How to create and deploy a local Registry Server with Docker Image, how to Pull your first Nginx Container Image from Docker Hub and deploy it to your local machine, Azure DevOps and GitHub integration for Docker and Kubernetes deployment, how to create a static pod in Kubernetes, and how to install, register and start GitLab Runner on Windows.

I hope you found this blog post helpful. If you have any questions, please let me know in the comment session.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Kindly subscribe to TechDirectArchive
This is default text for notification bar