gitlab ci无法构建Windows容器

mpr*_*net 6 gitlab docker gitlab-ci

我正在尝试使用https://gitlab.com构建 Windows 容器,但我没有发现这是否受支持。

我用一个非常简单的 Dockerfile 进行了测试:

FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"
Run Code Online (Sandbox Code Playgroud)

使用 .gitlab-ci.yml

image: docker
services:
- docker:dind

variables:
  DOCKER_HOST: tcp://docker:2375
  DOCKER_DRIVER: overlay2

before_script:
  - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY

windows:
  stage: build
  script:
  - docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG} . 
  - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG}
Run Code Online (Sandbox Code Playgroud)

它失败了:

映像操作系统“windows”无法在此平台上使用
错误:作业失败:退出代码 1

寻找 gitlab-runner 的文档,似乎支持https://docs.gitlab.com/runner/executors/#selecting-the-executor

有没有办法从在线服务构建 Windows 容器?

mpr*_*net 7

2020 年 1 月起,可以使用Windows Shared Runners (beta) 的在线服务构建 Windows 容器。

今天,我们很高兴地宣布,GitLab 托管的 Windows Shared Runners 已推出测试版。当我们开始向社区推出这项重要服务时,我们邀请您在 GitLab.com 上帮助塑造 Windows 生态系统 CI/CD 工具的方向

例如,使用以下.gitlab-ci.yml

windows:
  stage: build
  tags:
  - shared-windows
  - windows
  - windows-1809
  script:
  - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
  - docker build -t ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG} . 
  - docker push ${CI_REGISTRY}/${CI_PROJECT_PATH}:${CI_COMMIT_REF_SLUG}
Run Code Online (Sandbox Code Playgroud)

使用简单的Dockerfile

FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"
Run Code Online (Sandbox Code Playgroud)

管道执行结果 在此输入图像描述