Windows Nanoserver images not working with Docker executor
Summary
The GitLab Runner documentation indicates that the Docker executor supports Windows Nanoserver but jobs using Nanoserver-based images don't seem to work with the Docker executor.
Steps to reproduce
Set up a Windows-based Docker runner and tag it.
Define a job that uses a Nanoserver-based image (for example mcr.microsoft.com/windows/nanoserver:1809 or mcr.microsoft.com/dotnet/sdk:5.0):
use-nanoserver-image:
stage: test
tags: [WINDOWS-DOCKER-1809]
image: mcr.microsoft.com/windows/nanoserver:1809
script:
- echo Hi
Actual behavior
The job fails with a system error. See output below.
Expected behavior
The job succeeds.
Relevant logs and/or screenshots
Running with gitlab-runner 13.9.0 (2ebc4dc4)
on REDACTED
feature flags: FF_NETWORK_PER_BUILD:true
Preparing the "docker-windows" executor
00:03
Using Docker executor with image mcr.microsoft.com/windows/nanoserver:1809 ...
Pulling docker image mcr.microsoft.com/windows/nanoserver:1809 ...
Using docker image sha256:47284f980c64cbd4067b161e0e4615f20b7f5def84d5e09f1550e5f625dea9d3 for mcr.microsoft.com/windows/nanoserver:1809 with digest mcr.microsoft.com/windows/nanoserver@sha256:def85061f840b63c4e45019ba716a4b35649ecba2e273621d6e80c8640ceff4c ...
Preparing environment
00:12
Running on REDACTED via
REDACTED...
Getting source from Git repository
00:10
Fetching changes with git depth set to 50...
Initialized empty Git repository in REDACTED/.git/
Created fresh repository.
Checking out cba150d5 as master...
git-lfs/2.11.0 (GitHub; windows amd64; go 1.14.2; git 48b28d97)
Skipping Git submodules setup
Executing "step_script" stage of the job script
00:01
Using docker image sha256:47284f980c64cbd4067b161e0e4615f20b7f5def84d5e09f1550e5f625dea9d3 for mcr.microsoft.com/windows/nanoserver:1809 with digest mcr.microsoft.com/windows/nanoserver@sha256:def85061f840b63c4e45019ba716a4b35649ecba2e273621d6e80c8640ceff4c ...
Cleaning up file based variables
00:06
ERROR: Job failed (system failure): Error response from daemon: container 1a6ce20fcfd316ba096ea9e7e649fe550b3d318ce4f2342f58ee437a6f05fd54 encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2) extra info: {"CommandLine":"powershell -NoProfile -NoLogo -InputFormat text -OutputFormat text -NonInteractive -ExecutionPolicy Bypass -Command -"...
Environment description
Self-hosted runners, Docker executor on Windows.
config.toml contents
[[runners]]
name = "${gitlab_ci_name}"
url = "${gitlab_ci_url}"
token = "${gitlab_ci_token}"
executor = "docker-windows"
environment = [
"FF_NETWORK_PER_BUILD=true"
]
[runners.docker]
image = "mcr.microsoft.com/windows:${windows_kernel_version}"
allowed_images = [
"mcr.microsoft.com/windows:${windows_kernel_version}",
"mcr.microsoft.com/windows/iotcore:${windows_kernel_version}",
"mcr.microsoft.com/windows/servercore:${windows_kernel_version}",
"mcr.microsoft.com/windows/nanoserver:${windows_kernel_version}",
"mcr.microsoft.com/dotnet/framework/sdk:*",
"mcr.microsoft.com/dotnet/framework/runtime:*",
"mcr.microsoft.com/dotnet/framework/aspnet:*"
]
tls_verify = true
privileged = false
pull_policy = "always"
disable_cache = true
[runners.cache]
Type = "s3"
Path = "cache"
Shared = true
[runners.cache.s3]
ServerAddress = "s3.amazonaws.com"
AccessKey = "${s3_access_key}"
SecretKey = "${s3_secret_key}"
BucketName = "runners-cache-s3"
BucketLocation = "eu-central-1"
Insecure = false
Used GitLab Runner version
Possible fixes
Edited by Florian Greinacher