docker - gitlab ci 无法构建 windows 容器

标签 docker gitlab gitlab-ci

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

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

FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"

使用 .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}

它失败了:

image operating system "windows" cannot be used on this platform
ERROR: Job failed: exit code 1



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

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

最佳答案

January 2020可以使用 Windows Shared Runners (beta) 使用在线服务构建 Windows 容器。 .

Today, we are happy to announce that Windows Shared Runners hosted by GitLab is available in beta. As we are starting to roll out this important service to our community, we invite you to help shape the direction of CI/CD tooling for the Windows ecosystem on GitLab.com


例如,使用以下 .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}
用一个简单的Dockerfile
FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"
管道执行 result
enter image description here

关于docker - gitlab ci 无法构建 windows 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54380804/

相关文章:

node.js - 构建 Dockerfile - 在中间容器之间保留文件

GitLab CI/CD 更改文件夹和文件夹权限

gitlab - 我们可以定义多个工作流规则吗

gitlab - 将 gitlab 多项目管道中的一些继承变量(但不是全部)列入白名单

php - Gitlab CI 配置与 Laravel Docker Redis 错误的主机或端口

docker - 如何使用 configmap 在 Kubernetes 中挂载整个目录?

linux - fallocate 在我的 docker 容器内失败

docker - docker-compose up提供了错误:您是否正在尝试将目录挂载到文件上?

docker - 如何将 GitLab CE CI 设置为运行者的用户 docker 图像

docker-compose - 亚搏体育appGitlab CI CD : keeping docker env files