我正在尝试使用https://gitlab.com构建Windows容器,但是我没有找到是否支持此容器。
我用一个非常简单的Dockerfile进行了测试:
FROM microsoft/nanoserver:latest
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_IMAGE:$CI_COMMIT_REF_SLUG}-windows . -f Dockerfile.windows
- docker push ${CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG}-windows
它失败:
图像操作系统“ windows”不能在此平台上使用
错误:作业失败:退出代码1
正在寻找gitlab-runner的文档,似乎支持https://docs.gitlab.com/runner/executors/#selecting-the-executor。
是否可以通过在线服务构建Windows容器?
答案 0 :(得分:3)
自January 2020起,可以使用Windows Shared Runners (beta)使用在线服务来构建Windows容器。
今天,我们很高兴地宣布,由...托管的Windows Shared Runners GitLab提供beta版。当我们开始推广这个 对我们社区的重要服务,我们邀请您帮助塑造 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}
使用简单的Dockerfile
FROM mcr.microsoft.com/windows/servercore:ltsc2019
CMD echo "Hello World from Windows"
管道执行result
答案 1 :(得分:1)
据我所知,GitLab.com提供的运行程序均基于Linux。您需要为自己的运行器提供基于Windows的Docker引擎,以构建Windows Docker映像。
答案 2 :(得分:1)
用于GitLab Runner的Windows容器执行器
在GitLab 11.11中,我们很高兴向GitLab Runner添加新的执行程序,以在Windows上使用Docker容器。
以前,使用shell执行程序来编排Docker命令是Windows的主要方法,但是通过此更新,您现在可以直接在Windows上使用Docker容器,就像在Linux主机上一样。< br /> 这为我们的Microsoft平台用户打开了更高级的管道编排和管理之门。
此更新中包括改进的对整个GitLab CI / CD的PowerShell的支持,以及针对各种版本的Windows容器的新帮助程序映像。
请注意,您自己的Windows运行程序可以与GitLab.com一起使用,但当前不作为共享公共设备的一部分提供。
这来自issue 535:请参见the documentation "Using Windows containers"。
It has limitations,但这是一个很好的第一步。