Search code examples
dockergitlabkaniko

Getting Error when creating a Windows Docker Container on Kaniko/Gitlab


I'm trying to create a Windows Docker container using Kaniko/Gitlab.
Here is the Error I see:

Resolving secrets
00:00
Preparing the "docker-windows" executor
Using Docker executor with image gcr.io/kaniko-project/executor:v1.6.0-debug ...
Pulling docker image gcr.io/kaniko-project/executor:v1.6.0-debug ...
WARNING: Failed to pull image with policy "always": no matching manifest for windows/amd64 10.0.17763 in the manifest list entries (docker.go:147:0s)
ERROR: Preparation failed: failed to pull image "gcr.io/kaniko-project/executor:v1.6.0-debug" with specified policies [always]: no matching manifest for windows/amd64 10.0.17763 in the manifest list entries (docker.go:147:0s)

For .gitlab-ci.yml file:


image: 
name: microsoft/iis:latest
entrypoint: [""]



.build_variables: &build_variables
TAG: "docker-base-windows-2019-std-core"
AWS_ACCOUNT: "XXXXXXXXXX"
AWS_REGION: "XXXXXXX"
REGISTRY: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

.build_script: &build_script
script:
  - echo "{\"credsStore\":\"ecr-login\"}" > /kaniko/.docker/config.json
  - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile  --destination $REGISTRY:$TAG

stages:
- build-docker-image

build_image_dev:
variables:
  <<: *build_variables
stage: build-docker-image
image:
  name: gcr.io/kaniko-project/executor:v1.6.0-debug
  entrypoint: [""]
tags: ['XXXXX']
<<: *build_script
rules:
  - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  - if: '$CI_COMMIT_BRANCH == "main"'
  - if: $CI_COMMIT_TAG

This is normal text Code for Docker file:


FROM Microsoft/iis:latest
CMD [ "cmd" ]

Solution

  • You have the error:

    no matching manifest for windows/amd64 
    

    which means that particular image could not be found. It happens if you develop on windows and your server is a linux for instance.

    This error implies your host machine's OS is not compatible with the OS docker image you are trying to pull.