Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Jenkins声明性管道中使用Docker for Windows_Docker_Jenkins_Dockerfile_Jenkins Declarative Pipeline - Fatal编程技术网

在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
Docker18.x在尝试使用Windows容器时让我头疼,所以我回到了17.x。当我试图在Jenkins和nohup不在路径上的情况下运行时,仍然有一些问题,但通过()解决了。我怀疑我目前的问题可能与此有关

Code:我正在尝试初始化一个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管道:


拉取请求已合并,现在应该可以将windows容器与docker一起使用。