问题标签 [jenkins-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
717 浏览

docker - 向 image.run() 部分添加命令时,Docker ps 命令输出为空

环境:

  • 泊坞窗插件版本:1.1.2;
  • 詹金斯版本:2.0.50727;
  • docker客户端/服务器版本:17.12.0-ce;
  • 赢 10 专业版 x64;

场景 1: 我尝试使用以下命令通过 Jenkinsfile 运行 Selenoid 映像:

实际结果: 容器已创建,我在 docker ps 输出中看到 Selenoid 容器。

场景二:

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

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

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

Docker ps命令输出为空...

我做错了什么?也许我没有args转移到 run() 部分?

0 投票
1 回答
1531 浏览

docker - 从 Jenkinsfile 启动时,Gradle docker 容器会忽略缓存

我正在一个带有缓存卷的 gradle 容器中运行构建,但 gradle 不使用缓存中下载的依赖项进行后续构建。

这是 gradle 图像的 dockerfile:

在 Jenkinsfile 我有这样声明的构建阶段:

'gradle-cache' 卷是使用 docker volume create 命令创建的卷。

python 脚本只运行一个 gradle 命令:

当我检查主机上的 gradle-cache 卷数据时,它包含以下文件/文件夹:

因此构建成功写入缓存卷,但似乎没有从中读取,重新下载每个构建的每个依赖项。

如何让 gradle 使用这些下载的依赖项?

更新

所以我发现 .inside() 命令也支持参数,但它仍然不会从缓存中读取;只写给它。

0 投票
1 回答
2192 浏览

docker - 无法在 jenkins-docker 映像中使用 SMTP 发送邮件

我正在使用詹金斯码头图像。我想将我的邮件配置为 jenkins,以便我可以收到有关所有构建的邮件。

我应该在 docker-image 中进行哪些更改,以便能够向自己发送邮件?

我收到此错误

我用来运行 docker 映像的命令是:

$ docker run -u 0 --name myjenkins1 -p 8081:8080 -p 50001:50000 -v jenkins_home:/var/jenkins_home --env JAVA_ARGS="-Djava.awt.headless=true -Dmail.smtp.starttls.enable =真”詹金斯

0 投票
3 回答
13447 浏览

jenkins - 在多个阶段之间重用 Jenkins 中的代理(docker 容器)

我有一个具有多个阶段的管道,我想在仅“n”个阶段而不是所有阶段之间重用一个 docker 容器:

0 投票
0 回答
802 浏览

docker - 简单的詹金斯码头工人管道构建

我正在尝试使用 jenkinsfile 构建一个简单的 jenkins docker 管道。

我遇到的问题是我想在将图像推送到存储库之前对其进行测试,但我不知道如何在阶段或步骤之间保留引用。我尝试在顶部添加 def app = null, 但它仍然给出相同的错误。

这是错误日志。与全局变量相关的主要错误:groovy.lang.MissingPropertyException:没有这样的属性:类的应用程序:groovy.lang.Binding

0 投票
1 回答
2035 浏览

jenkins - 在 Jenkins 共享库中使用 Docker 构建

我正在尝试将 Jenkins 管道定义为(共享)对象,如此处所述。但我想添加在 docker 容器中运行构建操作的功能。

我的Jenkinsfile作品是这样的:

可以看到, docker实例是在Jenkinsfile中创建的,并传递给builder对象来创建builder。到目前为止,它有效。阶段inside在容器中执行。

现在我想将 Docker 实例的创建转移到 Pipeline 类SconsPipeline.groovy。我试图这样做:

但是 Jenkins 没有找到正确的对象:

所以我的问题是如何在共享库的目标代码中使用docker-workflow 。

0 投票
1 回答
259 浏览

jenkins - Jenkins Docker Pipeline Plugin - 在 withDockerRegistry 中支持 --email 选项

最近从 Jenkins 1.x 升级到 2.x,现在我在管道期间收到错误

我使用的是旧版本的 docker,它在使用 docker login 时仍然需要电子邮件选项。我使用1.12的是Docker Pipeline Plugin版本,现在我使用的是最新的1.17. 我在更改日志中找不到任何讨论弃用此选项的内容,这似乎也不是开源存储库。

只是想知道是否有人可以更新我,或者我是否将被迫升级我的 docker 版本?

0 投票
0 回答
123 浏览

jenkins - 如何在 docker 容器中获取 Jenkins master 的 ssh 公钥

我们遵循 Jenkins 的官方指南,我们的 master 作为 docker 容器运行。我现在正在尝试为这个 Jenkins 主机设置另一台机器作为从机,我想我需要手动将主机的公共 SSH 密钥复制到新的从机。如何访问这些密钥?可以多次销毁和创建的Jenkins容器不是问题吗?它确实有一个用于詹金斯数据的持久卷容器,但我假设这不是密钥所在的位置。

0 投票
1 回答
1850 浏览

jenkins-pipeline - 如何为管道中的 Dockerfile 代理覆盖 Jenkins 的随机图像标签

我的 Jenkinsfile 中有一个使用Dockerfile代理运行的步骤。当 jenkins 创建 docker 图像时,它会给它一个随机的长标签,我想用我自己的标签替换它。我尝试使用传递标签,additionalBuildArgs但这给 docker 图像一个额外的标签。

有没有办法阻止詹金斯传递标签?

0 投票
0 回答
866 浏览

jenkins - 使用 docker-container 作为 jenkins 构建代理时,如何在工作区中保留构建目录?

我正在使用docker 容器作为 Jenkins 构建代理。所有构建代理、jenkins 主节点都是在同一主机上运行的 docker 容器。(没有不同的虚拟机)

以下是我用来构建 Angular 应用程序的 Docker 代理模板。

码头工人-1

码头工人-2

  1. 这些是带有 sshd 的 Docker 代理。使用环境变量注入公钥。
  2. 构建代理 docker 映像已安装 npm 和 angular-cli。

詹金斯文件如下。我无法更改 Jenkins 文件。所以上面的构建代理在 jenkinsfile 中已经被标记为节点。

  1. 构建成功运行。我能够得到文物

我在做什么 我将在 docker 模板配置中挂载 .npm 和 node_modules 。(-v)

我想要的是

更快的构建。我想使用 docker 卷挂载选项保留这个工作区目录

所以 node_modules 应该是持久的并且构建会更快。如何获取该目录路径并将其放入 docker 代理模板中?