问题标签 [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 投票
0 回答
332 浏览

docker - 不支持 Unix 协议 - Docker 插件版本 - 0.16.2

当我尝试使用 docker 插件的最新版本将我的 Jenkins 连接到 docker 时,它没有连接!

错误 - “org.apache.http.conn.UnsupportedSchemeException:不支持 unix 协议(显示详细信息)”使用 unix:///var/run/docker.sock 命令(如他们的帮助标签中提供的那样 - 看到这一点感到震惊) !

但是当我将版本降级到 0.16.1 并且它与上面的命令连接时,这不会发生!

请帮助有关我应该在 Jenkins 配置的 docker cloud 部分中输入“Docker URL”的最新版本。

0 投票
2 回答
5277 浏览

jenkins - Jenkins Amazon ECR:没有基本的身份验证凭证

我无法使用 Jenkins Pipeline 将 ocker 图像推送到 Amazon ECR:我总是得到no basic auth credentials:-(

这是我的设置:

  • 詹金斯 2.46.2
  • 亚马逊 ECR 插件 1.4
  • 我已将 AWS 凭证添加aws-jenkins到 Jenkins(在本地测试并成功推送到 AWS ECR)
  • 我已经打印/root/.dockercfg在我的调试身份验证Jenkinsfile

詹金斯文件:

日志:

有任何想法吗?

更新(2017-05-23):
这是 Jira 问题: https ://issues.jenkins-ci.org/browse/JENKINS-44143

0 投票
1 回答
10880 浏览

docker - Jenkins docker - 运行容器,执行 shell 脚本等

我正在尝试在 Jenkins 管道中运行 docker 容器。

我的 Jenkinsfile 中有以下内容:

test-gatling.sh我有这个:

ls命令仅用于测试,但是当它执行时,它会列出我的 github 存储库的文件和文件夹,而不是denvazh/gatling容器内的文件。这是为什么?我认为该docker run -it [...]命令会打开容器以便可以在其中运行命令?

=================

另外,我如何运行一个容器并让它运行,而不在其中执行任何命令?(在 Jenkins 流水线中)

我想运行:docker run -d -p 8080:8080 -t [my_container]并在端口 8080 上访问它。我该怎么做...?

0 投票
1 回答
896 浏览

docker - 如何将詹金斯连接到码头?

我有一个詹金斯服务器。在那里我无法安装docker。所以问题是将jenkins与docker服务器集成的正确方法是什么?集成它的最快最简单最方便的方法是什么?

1.通过安装了docker的jenkins节点

2.通过ssh?如果 - 配置看起来如何?

3.仅通过在 jenkins 主服务器上安装的 docker

4.其他?

0 投票
1 回答
1174 浏览

jenkins - jenkins中的sbt输出给出垃圾字符

在输出中打印以下内容

代替

我怎样才能摆脱多余的垃圾字符?我正在使用 jenkins 使用 sbt 构建 scala 项目。

0 投票
1 回答
2951 浏览

jenkins - 使用 Jenkinsfile 时如何签出 Docker 容器内的存储库?

我目前已经设法设置了一个 Jenkins 文件来在容器内运行我的 PHP 分析。这是它的要点:

当它运行时,似乎 repo 已签出到主机上,并且该目录已安装到目录中的 docker 容器中/app。(我还没有找到任何配置,所以我不确定这是在哪里定义的。)

在同一个容器中,我在目录中安装了 Magento2 /var/magento2。我需要在 Magento2 代码库的范围内运行一些测试。这意味着我需要将当前分支签出到容器中的特定目录中,/var/magento2/vendor/myorg/mypackage/但签出的 repo 似乎位于/app.

如何在容器内的某个位置签出 repo?

0 投票
1 回答
295 浏览

jenkins - Jenkins Job Builder docker构建和发布插件问题

当我尝试使用 Jenkins job builder for docker build and publish plugin 构建 Jenkins 作业时,我遇到了问题。我在这里有两个问题:

1.) 在存储库标签中它不接受 "/" 。2.)注册表 url 和密码没有反映在我的 jenkins 作业配置中(间距正确)这是我的作业模板:

  • 作业模板:名称:'{name}_job' 描述:'自动生成的测试'节点:PROD-SLAVE 构建器:

    • 外壳:| 呸呸呸
    • docker-build-publish: repo-name: "npu-cluster/{name}" repo-tag: 'BUILD_NUMBER' no-cache: false no-force-pull: false skip-build: false 指纹: true skip-decorate:假跳过最新:真跳过标签:假文件路径:'{name}/Dockerfile' 注册表 URL:url 注册表凭据 ID:凭据 ID

    • ssh-builder:ssh-user-ip:centos@ip 命令:blah blah

0 投票
5 回答
16404 浏览

docker - Jenkins 和 Docker 设备上没有空间 - 如何正确清理

我们在 Ubuntu 16.04.1 服务器上运行 Jenkins(版本 2.60.1)。我们最近遇到的问题之一是我们经常收到错误“设备上没有剩余空间”。

我知道在使用 Docker 时,由于遗留的文件占用了不必要的空间,因此需要进行严格的清理过程。

我们使用CloudBees Docker Build and Publish 插件来处理构建并推送到 AWS ECS。我想过删除所有未使用的图像。问题是如果我登录到 Jenkins 实例(通过 SSH)并尝试运行它给出的 docker 命令 - “无法连接到 Docker 守护进程。docker 守护进程是否在此主机上运行?”

我想我需要在 Jenkins 环境或插件的一部分中执行此操作?

有人处理过这个问题或有什么建议吗?- 我真的很感激。

0 投票
1 回答
3919 浏览

jenkins - Jenkins Slave 离线节点连接超时/关闭 - Docker 容器 - 重新启动步骤 - 配置正在选择旧端口

詹金斯版本: 1.643.2

Docker 插件版本: 0.16.0

在我的 Jenkins 环境中,我有一个带有 2-5 个从节点服务器(slave1、slave2、slave3)的 Jenkins 主服务器。

这些从站中的每一个都使用 Docker 插件在 Jenkins 全局配置中进行配置。

此刻一切正常。

我看到我们的监控系统对 slave3 上的高 SWAP 空间使用率发出了一些警报(对于 ex IP:11.22.33.44),所以我 ssh'ed 到那台机器并运行:sudo docker ps这给了我这个 slave3 上当前正在运行的 docker 容器的有效输出机器。

通过ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -10在目标从属机器上运行(其中运行 4 个容器),我发现消耗所有 RAM 的前 5 个进程java -jar slave.jar正在每个容器内运行。所以我想为什么不重新启动狗屎并收回一些记忆。在以下输出中,我看到了该步骤sudo docker ps之前和之后的命令状态。docker restart <container_instance>向右滚动,您会注意到在容器 ID 以 结尾的第二行中,主机(slave3)机器上...0a02的虚拟端口(列在标题NAMES下)是 1053(映射到容器的虚拟 IP 的端口 22 用于 SSH)。很酷,这意味着,当来自 JenkinsManage Node部分,如果您尝试重新启动从属容器,Jenkins 将尝试连接到主机 IP 的 11.22.33.44:1053 并执行任何应该成功启动从属的操作。所以,詹金斯在某个地方持有那个端口(1053)。

运行后,sudo docker restart <instanceIDofContainer>我运行free -h/grep -i swap /proc/meminfo发现 RAM(之前已完全使用,仅显示剩余 230MB 可用空间)现在是 1GB 可用空间,SWAP 大小总共为 1G,使用了 1G(我尝试了 swappiness 60 或 10),现在是 450MB交换空间免费。所以警报的事情得到了解决。凉爽的。

但是,现在正如您从sudo docker ps上面的输出中注意到的那样,在重新启动步骤之后,对于该容器 ID ...0a02,我现在得到了一个新的 PORT# 1054!

当我转到管理节点 > 尝试使该节点脱机、停止并重新启动它时,Jenkins 没有选择新端口 (1054)。它仍然以某种方式选择旧端口 1053(同时尝试在端口 1053 上建立与 11.22.33.44(主机 IP)的 SSH 连接,该端口映射到容器的虚拟 IP 端口#22(ssh))。

如何在 Jenkins 中为此从容器更改此端口或配置,以便 Jenkins 可以看到新端口并成功重新启动?

PS:单击节点上的“配置”以查看它的配置除了名称字段之外没有显示任何内容。通常在常规从属设备中有很多字段(您可以在其中定义标签、根目录、启动方法、属性 env 变量、从属环境的工具,但我猜对于这些 Docker 容器,除了名称字段)。单击Jenkins Global 配置中的测试连接(在Docker插件部分下)显示它已成功找到 Docker 版本 1.8.3

现在,由于 1053 端口 (telnet) 无法正常工作,因为该容器的 instanceID 现在是 1054(在重新启动步骤之后),Jenkins 重新启动步骤在 SSH 连接步骤期间失败(它首先通过 SSH 方法连接)。

在此处输入图像描述

0 投票
2 回答
2009 浏览

docker - 如何找到码头地址?

在此处输入图像描述我使用了这张图片https://hub.docker.com/r/bibinwilson/jenkins-slave/ 并创建了带有以下评论的容器 docker run -d -p 80:80 bibinwilson/jenkins-slave