将命令添加到image.run()部分时,docker ps命令输出为空



环境:

  • Docker-Plugin版本:1.1.2;
  • Jenkins版本:2.0.50727;
  • docker客户端/服务器版本:17.12.0-ce;
  • Win 10 Pro X64;

方案1:我尝试通过以下命令通过jenkinsfile运行硒映射:

stage('Start services') {
        docker.image('aerokube/selenoid').
                run('--name selenoid ' +
                        '-p 4444:4444 ' +
                        '-v C:/workspace/selenoid:/etc/selenoid ' +
                        '-v C:/workspace/output:/opt/selenoid/video ' +
                        '-v //var/run/docker.sock:/var/run/docker.sock ' +
                        '-e "OVERRIDE_VIDEO_OUTPUT_DIR=/C/workspace/output/"')
}

实际结果:该容器是创建的,我在Docker PS输出中看到了硒的容器。

方案2:

当我在点之后添加任何命令时 - 容器未创建。请参阅以下内容:

stage('Start services') {
        docker.image('aerokube/selenoid').
                run('--name selenoid ' +
                        '-p 4444:4444 ' +
                        '-v C:/workspace/selenoid:/etc/selenoid ' +
                        '-v C:/workspace/output:/opt/selenoid/video ' +
                        '-v //var/run/docker.sock:/var/run/docker.sock ' +
                        '-e "OVERRIDE_VIDEO_OUTPUT_DIR=/C/workspace/output/"',
                '-video-output-dir /output')
}

在这种情况下,我添加了-video-output-dir /output。顺便说一句,我尝试在一个点之后添加下一个命令: -limit 10-conf /etc/selenoid/browsers.json->但仍然无济于事。

另外,请参阅Jenkins Job的以下日志:

[Pipeline] sh
[C:Jenkinsworkspacepplication_react-app_master-6UL22J3ZHJJMMTIKZO5LDRETFMNMM4TSEGGCZJKAGTM5HBOEAEYQ] Running shell script
+ docker run -d --name selenoid -p 4444:4444 -v C:/workspace/selenoid:/etc/selenoid -v C:/workspace/output:/opt/selenoid/video -v //var/run/docker.sock:/var/run/docker.sock -e OVERRIDE_VIDEO_OUTPUT_DIR=/C/workspace/output/ aerokube/selenoid -video-output-dir /output
[Pipeline] dockerFingerprintRun
[Pipeline] bat
[pplication_react-app_master-6UL22J3ZHJJMMTIKZO5LDRETFMNMM4TSEGGCZJKAGTM5HBOEAEYQ] Running batch script
C:Jenkinsworkspacepplication_react-app_master-6UL22J3ZHJJMMTIKZO5LDRETFMNMM4TSEGGCZJKAGTM5HBOEAEYQ>docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Docker ps命令输出为空...

我在做错什么?也许我不这样做args转移到Run((部分?

看一下硒dockerfile。重要行是:

ENTRYPOINT ["/usr/bin/selenoid"]
CMD ["-listen", ":4444", "-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video/"]

这意味着entrypoint命令始终运行,并且只有明确传递ARG时,CMD中的所有内容才适用。在您的情况下,您正在添加自己的论点:

'-video-output-dir /output'

这意味着不再应用CMD节内容。但是-conf是必需的参数,默认为config/browsers.json,而不是/etc/selenoid/browsers.json。因此,正确的解决方案是将-conf /etc/selenoid/browsers.json添加到您的表达式中。

相关内容

  • 没有找到相关文章

最新更新