【问题标题】:Use docker build step plugin in Jenkins docker container在 Jenkins docker 容器中使用 docker build step 插件
【发布时间】:2016-09-07 00:11:46
【问题描述】:

我在 docker 容器中有一个 jenkins 服务器:

我已经编辑了基础映像,因此我能够将 docker 套接字安装到我的容器并以 jenkins 用户的身份使用这些套接字。

docker run -d -u jenkins --name jenkins \
  -p 50000:50000 \
  -p 8080:8080 \
  --volumes-from jenkins-volume \ 
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  test/jenkins:1.0

所以我可以在我的 jenkins 容器(在 shell 中)中运行诸如 docker versiondocker ps 之类的命令。

现在我已经安装了 docker build step 插件。

我的问题是如何使用和配置这个插件?

在我看到的全局配置中:

  • Docker 安装程序(我想我不需要那个)
  • Docker 构建器:Docker 服务器 REST API URL

所以我不知道如何配置。

当我尝试使用 Jenkins Job 中的插件执行 docker 命令时,我收到错误消息;我无法在我的工作中保存 docker 命令的配置,并且我在 jenkins 的日志中看到以下错误:

Error while serving http://ip:8080/job/docker-test/configSubmit
java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor648.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
Caused by: javax.servlet.ServletException: This page expects a form submission but had only {}

如何在安装了 docker 套接字的 jenkins-docker 容器中配置此插件?

【问题讨论】:

    标签: plugins jenkins docker


    【解决方案1】:
    1. 将 docker daemon 从 unix socket 更改为 tcp/2375
    2. 在 Jenkins / Settings / Docker Builder / Docker URL 部分在端口 2375 上添加 docker rest-url(即使 TEST 不起作用)

    只输入 172.17.0.1:2375(其中 172.17.0.1 是运行 docker 守护进程的主机)

    【讨论】:

    • 用 tcp 和 docker 1.12 和 jenkins 2.32 测试我不得不把 tcp://172.17.0.1:2375 和测试按钮工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2021-07-13
    • 1970-01-01
    • 2017-09-17
    • 2015-07-14
    • 2020-10-18
    相关资源
    最近更新 更多