在Jenkins Docker容器中使用Docker构建步骤插件。

4

我有一个运行在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构建步骤插件。

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

在全局配置中,我看到:

  • Docker安装程序(我认为我不需要它)
  • Docker构建器:Docker服务器REST API URL

所以我不知道如何配置它。

当我尝试在Jenkins作业中使用插件执行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 sockets的jenkins-docker容器中配置这个插件?
1个回答

1
  1. 将docker守护进程从unix socket更改为tcp/2375
  2. 在Jenkins / 设置 / Docker Builder / Docker URL部分添加rest-url on port 2375的docker地址(即使测试不起作用)

只需放置172.17.0.1:2375(其中172.17.0.1是运行docker守护进程的主机)


1
使用Docker 1.12和Jenkins 2.32进行TCP测试,我不得不放置tcp://172.17.0.1:2375,测试按钮就可以工作了。 - guillem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接