在Jenkins声明性管道中使用Docker for Windows
我正在通过在Jenkins声明性管道中使用Docker for Windows,docker,jenkins,dockerfile,jenkins-declarative-pipeline,Docker,Jenkins,Dockerfile,Jenkins Declarative Pipeline,我正在通过Dockerfile为Windows代理设置Jenkins声明性管道和Docker的CI工作流 注意:不幸的是,目前使用基于Linux的docker守护进程不是一个解决方案,因为我需要运行Windows二进制文件 设置:Jenkins master通过Docker在Linux 16.04上运行。詹金斯建筑代理是 Windows 10企业版1709(16299.551) Docker for Windows 17.12.0-ce Docker18.x在尝试使用Windows容器时让我
Dockerfile
为Windows代理设置Jenkins声明性管道和Docker的CI工作流
注意:不幸的是,目前使用基于Linux的docker守护进程不是一个解决方案,因为我需要运行Windows二进制文件
设置:Jenkins master通过Docker在Linux 16.04上运行。詹金斯建筑代理是
- Windows 10企业版1709(16299.551)
- Docker for Windows 17.12.0-ce
jenkins文件
,并在其中运行一个简单的hello world打印输出
/詹金斯档案
pipeline {
agent none
stages {
stage('Docker Test') {
agent {
dockerfile {
filename 'Dockerfile'
label 'windocker'
}
}
steps {
println 'Hello, World!'
}
}
}
}
/Dockerfile
FROM python:3.7-windowsservercore
RUN python -m pip install --upgrade pip
基本上,这应该是一个干净的图像,只打印“你好,世界!”但在詹金斯身上失败了强>
日志的输出:
[C:\jenkins\workspace\dockerfilecd4c215a] Running shell script
+ docker build -t cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d -f Dockerfile .
Sending build context to Docker daemon 337.4kB
Step 1/2 : FROM python:3.7-windowsservercore
---> 340689b75c39
Step 2/2 : RUN python -m pip install --upgrade pip
---> Using cache
---> a93f446a877f
Successfully built a93f446a877f
Successfully tagged cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d:latest
[C:\jenkins\workspace\dockerfilecd4c215a] Running shell script
+ docker inspect -f . cbe5e0bb1fa45f7ec37a2b15566f84aa9bd08f5d
.
Cannot run program "id": CreateProcess error=2, The system cannot find the file specified
问题是,目前不支持windows。它正在调用linux“id”命令以获取当前用户id Jenkins有一个开放拉取请求和JIRA票证,以支持Windows docker管道: