Mizux
Mizux

Reputation: 9309

GitHub action pullling windows image

Using windows-latest runner I was not able to pull a windows docker image.

Setup

yaml file

name: Docker
on: [push, pull_request]
jobs:
  Windows:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v2
    - name: docker version
      run: docker version
    - name: docker info
      run: docker info
    - name: Pull image
      run: docker pull mcr.microsoft.com/windows:2009
    - name: Build image
      run: docker build -f win.Dockerfile .

Dockerfile

# Create a virtual environment with all tools installed
# ref: https://hub.docker.com/_/microsoft-windows
FROM mcr.microsoft.com/windows:2009 AS env

RUN Get-ChildItem Env:
RUN cmake -version

src: https://github.com/Mizux/inspect-ci

Observed

$ docker version
Client: Docker Engine - Enterprise
 Version:           19.03.12
 API version:       1.40
 Go version:        go1.13.13
 Git commit:        4306744
 Built:             08/05/2020 19:27:53
 OS/Arch:           windows/amd64
 Experimental:      false
Server: Docker Engine - Enterprise
 Engine:
  Version:          19.03.12
  API version:      1.40 (minimum version 1.24)
  Go version:       go1.13.13
  Git commit:       f295753ffd
  Built:            08/05/2020 19:26:41
  OS/Arch:          windows/amd64
  Experimental:     false

$ docker info
Client:
 Debug Mode: false
 Plugins:
  cluster: Manage Docker Enterprise clusters (Mirantis Inc., v1.6.0)
Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 5
 Server Version: 19.03.12
 Storage Driver: windowsfilter
  Windows: 
 Logging Driver: json-file
 Plugins:
  Volume: local
  Network: ics internal l2bridge l2tunnel nat null overlay private transparent
  Log: awslogs etwlogs fluentd gcplogs gelf json-file local logentries splunk syslog
 Swarm: inactive
 Default Isolation: process
 Kernel Version: 10.0 17763 (17763.1.amd64fre.rs5_release.180914-1434)
 Operating System: Windows Server 2019 Datacenter Version 1809 (OS Build 17763.1518)
 OSType: windows
 Architecture: x86_64
 CPUs: 2
 Total Memory: 7GiB
 Name: fv-az68-962
 ID: 7OIU:P7VO:DVY5:6QUE:34MP:ZFAE:EN7P:4BVA:3MEH:G5VM:ZVMS:LAND
 Docker Root Dir: C:\ProgramData\docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

$ docker pull mcr.microsoft.com/windows:2009
no matching manifest for windows/amd64 10.0.17763 in the manifest list entries

Since it is a runner, it's headless so please don't ask me to "click" on system tray...

ref:

Upvotes: 2

Views: 777

Answers (1)

Marcin Kłopotek
Marcin Kłopotek

Reputation: 5961

The base image you are requesting (mcr.microsoft.com/windows:2009) is not compatible with underlying Docker backend pre-installed on windows-latest runners. If you look at docker version/info output you can see those values:

OS/Arch:        windows/amd64
Kernel Version: 10.0 17763 (17763.1.amd64fre.rs5_release.180914-1434)

This is why you get the error:

no matching manifest for windows/amd64 10.0.17763 in the manifest list entries

You should switch to a compatible base image to fix it. You can find one at https://hub.docker.com/_/microsoft-windows. Navigate to §Full Tag Listing section and inspect the Architecture and OsVersion column to find the matching image tag to switch to (eg.: mcr.microsoft.com/windows:10.0.17763.1518).

Upvotes: 2

Related Questions