在Jenkins docker容器中使用docker build step插件

时间:2016-05-11 14:11:04

标签: plugins jenkins docker

我在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步骤插件。

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

在全局配置中,我看到:

  • 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容器中配置此插件?

1 个答案:

答案 0 :(得分:0)

  1. 将docker守护程序从unix socket更改为tcp / 2375
  2. 在Jenkins / Settings / Docker Builder / Docker URL部分中,在端口2375上添加docker rest-url(即使TEST不起作用)
  3. 只放172.17.0.1:2375(其中172.17.0.1是运行docker守护程序的主机)