我正在尝试使用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}
型
失败原因:
映像操作系统“windows”不能在此平台上使用
错误:作业失败:退出代码% 1
寻找gitlab-runner的文档,它似乎支持https://docs.gitlab.com/runner/executors/#selecting-the-executor。
有没有一种方法可以从在线服务构建一个windows容器?
4条答案
按热度按时间2hh7jdfx1#
从January 2020开始,可以使用Windows Shared Runners(beta)在线服务构建Windows容器。
今天,我们很高兴地宣布,由GitLab托管的Windows Shared Runners已推出beta版。随着我们开始向社区推出这一重要服务,我们邀请您在GitLab.com上帮助塑造Windows生态系统的CI/CD工具方向
例如,使用以下.gitlab-ci.yml
字符串
简单的Dockerfile
型
流水线执行result x1c 0d1x
ix0qys7i2#
GitLab 1.11(2019年5月)应该支持这一点
GitLab Runner的Windows容器执行程序
在GitLab 11.11中,我们很高兴为GitLab Runner添加了一个新的执行器,用于在Windows上使用Docker容器。
x1c 0d1x的数据
以前,使用shell执行器来编排Docker命令是Windows的主要方法,但通过此更新,您现在可以直接在Windows上使用Docker容器,就像在Linux主机上一样。
这为我们的Microsoft平台用户打开了更高级的管道编排和管理的大门。
此更新包括在整个GitLab CI/CD中改进对PowerShell的支持,以及各种版本的Windows容器的新帮助器映像。
请注意,您自己的Windows runner可以与GitLab.com一起使用,但目前无法作为共享公共队列的一部分提供。
这来自issue 535:请参阅文档“使用Windows容器”。
It has limitations,但这是一个很好的第一步。
js81xvg63#
据我所知,GitLab.com提供的runner都是基于Linux的。你需要为你自己的runner提供一个基于Windows的Docker引擎来构建Windows Docker镜像。
4nkexdtk4#
@mpromonet解决方案不再工作,而无需添加额外的行来启动docker服务,因为现在不像以前那样默认启动。
使用
- Start-Service -Name "docker"
添加before_script
部分更新示例:
字符串
来源:https://forum.gitlab.com/t/docker-daemon-not-running-on-windows-shared-runner/83245