问题标签 [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.
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() 部分?
docker - 从 Jenkinsfile 启动时,Gradle docker 容器会忽略缓存
我正在一个带有缓存卷的 gradle 容器中运行构建,但 gradle 不使用缓存中下载的依赖项进行后续构建。
这是 gradle 图像的 dockerfile:
在 Jenkinsfile 我有这样声明的构建阶段:
'gradle-cache' 卷是使用 docker volume create 命令创建的卷。
python 脚本只运行一个 gradle 命令:
当我检查主机上的 gradle-cache 卷数据时,它包含以下文件/文件夹:
因此构建成功写入缓存卷,但似乎没有从中读取,重新下载每个构建的每个依赖项。
如何让 gradle 使用这些下载的依赖项?
更新
所以我发现 .inside() 命令也支持参数,但它仍然不会从缓存中读取;只写给它。
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 =真”詹金斯
jenkins - 在多个阶段之间重用 Jenkins 中的代理(docker 容器)
我有一个具有多个阶段的管道,我想在仅“n”个阶段而不是所有阶段之间重用一个 docker 容器:
docker - 简单的詹金斯码头工人管道构建
我正在尝试使用 jenkinsfile 构建一个简单的 jenkins docker 管道。
我遇到的问题是我想在将图像推送到存储库之前对其进行测试,但我不知道如何在阶段或步骤之间保留引用。我尝试在顶部添加 def app = null, 但它仍然给出相同的错误。
这是错误日志。与全局变量相关的主要错误:groovy.lang.MissingPropertyException:没有这样的属性:类的应用程序:groovy.lang.Binding
jenkins - 在 Jenkins 共享库中使用 Docker 构建
我正在尝试将 Jenkins 管道定义为(共享)对象,如此处所述。但我想添加在 docker 容器中运行构建操作的功能。
我的Jenkinsfile
作品是这样的:
可以看到, docker实例是在Jenkinsfile中创建的,并传递给builder对象来创建builder。到目前为止,它有效。阶段inside
在容器中执行。
现在我想将 Docker 实例的创建转移到 Pipeline 类SconsPipeline.groovy
。我试图这样做:
但是 Jenkins 没有找到正确的对象:
所以我的问题是如何在共享库的目标代码中使用docker-workflow 。
jenkins - Jenkins Docker Pipeline Plugin - 在 withDockerRegistry 中支持 --email 选项
最近从 Jenkins 1.x 升级到 2.x,现在我在管道期间收到错误
我使用的是旧版本的 docker,它在使用 docker login 时仍然需要电子邮件选项。我使用1.12
的是Docker Pipeline Plugin版本,现在我使用的是最新的1.17
. 我在更改日志中找不到任何讨论弃用此选项的内容,这似乎也不是开源存储库。
只是想知道是否有人可以更新我,或者我是否将被迫升级我的 docker 版本?
jenkins - 如何在 docker 容器中获取 Jenkins master 的 ssh 公钥
我们遵循 Jenkins 的官方指南,我们的 master 作为 docker 容器运行。我现在正在尝试为这个 Jenkins 主机设置另一台机器作为从机,我想我需要手动将主机的公共 SSH 密钥复制到新的从机。如何访问这些密钥?可以多次销毁和创建的Jenkins容器不是问题吗?它确实有一个用于詹金斯数据的持久卷容器,但我假设这不是密钥所在的位置。
jenkins-pipeline - 如何为管道中的 Dockerfile 代理覆盖 Jenkins 的随机图像标签
我的 Jenkinsfile 中有一个使用Dockerfile
代理运行的步骤。当 jenkins 创建 docker 图像时,它会给它一个随机的长标签,我想用我自己的标签替换它。我尝试使用传递标签,additionalBuildArgs
但这给 docker 图像一个额外的标签。
有没有办法阻止詹金斯传递标签?
jenkins - 使用 docker-container 作为 jenkins 构建代理时,如何在工作区中保留构建目录?
我正在使用docker 容器作为 Jenkins 构建代理。所有构建代理、jenkins 主节点都是在同一主机上运行的 docker 容器。(没有不同的虚拟机)
以下是我用来构建 Angular 应用程序的 Docker 代理模板。
- 这些是带有 sshd 的 Docker 代理。使用环境变量注入公钥。
- 构建代理 docker 映像已安装 npm 和 angular-cli。
詹金斯文件如下。我无法更改 Jenkins 文件。所以上面的构建代理在 jenkinsfile 中已经被标记为节点。
- 构建成功运行。我能够得到文物
我在做什么 我将在 docker 模板配置中挂载 .npm 和 node_modules 。(-v)
我想要的是
更快的构建。我想使用 docker 卷挂载选项保留这个工作区目录
所以 node_modules 应该是持久的并且构建会更快。如何获取该目录路径并将其放入 docker 代理模板中?