问题标签 [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 回答
536 浏览

docker - jenkins 管道脚本中 docker 容器的 if else 条件

我在 Jenkins 中创建了一个管道,其步骤是:

  1. git pull(从 GitHub 检索应用程序)
  2. 构建(maven 打包应用程序)
  3. 构建图像
  4. 运行图像

运行图像的代码是 docker run -d --name **application_name** -p 8081:8081 **application_name**

我需要一个 if-else 条件来检查图像是否已创建。例如。

我需要这个,因为每次我更改代码中的某些内容时,Jenkins 都会抛出一个错误,指出图像已经在运行。

0 投票
1 回答
44 浏览

docker - Docker 正在监听运行命令中指定的端口

我在 Jenkins 中创建了一个管道,它从 Github 获取一个应用程序,构建该应用程序,然后构建一个映像,然后最终使用该应用程序运行该映像。

Dockerfile 是:

这里的 jenkins-demo-api-1.0.0-1.0.0-SNAPSHOT-mule-application.jar是来自 Github 的 Jenkins 中构建的应用程序。

管道脚本如下:

管道成功执行,但是当我尝试点击时,http:localhost:8081我收到的响应是 此页面无法正常工作

我应该怎么办?

0 投票
1 回答
43 浏览

docker - Jenkins 使用 docker 作为代理

我无法将 Docker 与 Jenkins 完全集成。我在 Jenkins 门户的 Cloud Node 设置中设置了 Docker。如何使用包含 Node、Ruby 等的图像?这些图像必须包含 JDK 吗?

0 投票
1 回答
449 浏览

jenkins - 为 Jenkins 启动 kubernetes pod 的证书问题(托管在该 kubernetes 集群之外)

我一直在尝试在我现有的 jenkins 设置(托管在 k8s 集群之外)上配置 jenkins kubernetes 云代理。我的 jenkins 托管在 Windows VM 中的 Google Cloud Platform 中。它暴露在互联网上,我们添加了一个 ssl 认证。

我们正在尝试使用 Jenkins Kubernetes 插件添加云代理。与 kubernetes 的连接有效(我已经通过测试连接验证了这一点。当我的工作尝试开始时,pods 容器也被添加到集群中)。我在我的 pod 模板中添加以下配置 - pod 容器在我的 kubernetes 引擎中启动。

问题 - 作业没有运行并不断创建新的 pod 并删除旧的 pod。在正确的方向上需要一些帮助。我在网上搜索了是否有人有类似的问题或设置。似乎每个人都在 k8s 中托管 jenkins 以及云代理。

我认为问题在于我们的詹金斯在我们的 Kubernetes 集群之外。

我现在使用默认的基本映像只是为了查看和检查作业是否运行。Job 在 Build shell 步骤中只有一个 echo 命令。我试过的图片

  • jnlp-slave-with-java-build-tools
  • 詹金斯/入站代​​理
  • 詹金斯/代理

对我的 kubernetes 集群的身份验证使用一个服务帐户 json,它具有所有访问权限。我正在使用自由式工作

谷歌堆栈驱动程序日志中的错误 -

0 投票
1 回答
1792 浏览

docker - 如何正确地将 ssh 密钥文件从 Jenkins 凭据变量传递到 docker build 命令?

这个问题是对这个问题 How to pass jenkins credentials into docker build command?的跟进。

我从我的 groovy 管道中的 jenkins 凭证存储中获取 ssh 密钥文件,并通过 --build-arg 将其传递给 docker build 命令,以便我可以从我的 docker 容器中的私有 git repos 签出和构建工件

凭证存储 id:cicd-user,它可以按照我的 groovy Jenkinsfile 的预期检查我的私人作品

我访问它并尝试将其传递给 docker build 命令:

在 Dockerfile 我做

运行 echo "Host bitbucket.myorg.co\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config

但我看到以下问题

“加载密钥“/home/cicd-user/.ssh/id_rsa”:(无效格式)“git@Bitbucket.mycomp.co:Permission denied(公钥)“致命:无法从远程存储库读取”

过去,我通过如下所示的 cat'ing 从外部将 ssh priv 密钥作为 --build-arg 传递

--build-arg ssh_prv_key="$(cat ~/.ssh/id_rsa)"

我应该做类似的事情吗

--build-arg PRIV_KEY_FILE="$(cat $FILE)"

关于可能出了什么问题或我应该在哪里寻找正确调试的任何想法?

0 投票
1 回答
126 浏览

docker - Docker 和 Jenkins 集成

我添加了 BitBucket 服务器集成插件 ( https://plugins.jenkins.io/atlassian-bitbucket-server-integration/ ) 并且可以从 Jenkins 连接到 BitBucket 云存储库:

在此处输入图像描述

但是当我尝试构建时收到一个错误:

所以看来我需要在 Jenkins 实例上安装 Docker ?

https://plugins.jenkins.io/docker-build-publish/

我正在按照本教程使用 Jenkins 配置 Docker:https ://medium.com/@karthi.net/docker-tutorial-build-docker-images-using-jenkins-d2880e65b74

并达到了这一步:

在此处输入图像描述

在我自己的 Jenkins Docker 设置页面上,我有:

在此处输入图像描述

我不确定应该使用哪个 Docker URL?我是否需要在 Kubernetes 集群中配置一个新的容器实例并在这个新实例中运行 docker?那么这个新的 Docker 实例是Docker Host URI字段吗?

0 投票
1 回答
342 浏览

jenkins - Jenkins 的存储无法与 Dockerfile 代理一起运行

0 投票
1 回答
388 浏览

jenkins - 声明式管道作业中的 Dockerfile 失败

詹金斯版本:-

我的 Dockerfile:-

我的声明式管道:-

Jenkins master我已经将 Linux 服务器配置为节点VM-Linux-Agent并使用此节点管道作业code checkout正在发生,并进一步使用Dockerfile构建 docker 容器然后运行构建和 docker 本身上的其他步骤,这些步骤不起作用。它显示以下错误。

Buildstep 而不是在 docker 容器上运行,而是在 master 上运行,然后失败。因为我只想build + test从我的节点系统(这是 Docker 主机)在 docker 容器上运行步骤。那么如何在我的声明性管道中解决这个问题?请让我知道如何做到这一点。提前致谢。

0 投票
1 回答
65 浏览

python - 在 Jenkins docker 容器中执行 shell 脚本时虚拟环境未打开

为了运行我的 python 测试,我在 Jenkins 中创建了一个自由式项目并编写了一个如下脚本:

但是构建崩溃并出现“无法打开”错误:

0 投票
0 回答
126 浏览

docker - Jenkins/Groovy:为什么 docker.image.withRun() 失败,而 docker.image.run() 没有?

这是我正在使用的 Jenkins 声明性管道的简化:

为什么该行会def container = img.withRun()生成此错误:

......而def container = img.run()没有?

withRun()本来应该是首选,因为它的界面更干净,可以保证清理,但我不能以管理方式允许选定的脚本。