在Jenkins中运行docker命令作为构build步骤

我正在Jenkins中运行一些docker命令作为后期构build步骤,并且失败。 我的工作在一个从属节点上运行,当我去到从属主机并直接执行docker命令时,一切正常。 就像一个简单的testing,我使用以下作为后构build步骤:

docker ps 

控制台中的输出是这样的:

  • docker ps无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行? 构build步骤'Execute shell'标记为失败

此机器上的唯一用户是正在构build的用户,并且已设置为泊坞窗组。 构build本身的环境可能有什么不同,当我进入可能导致这个问题的节点主机?

谢谢。

答案是,jenkins的奴隶进程是长期运行的,而不是每个工作都会产生的。 为了使添加到jenkins用户的docker组生效,我必须重新启动slave节点。 案例closures:D

你确定他们都使用相同的用户吗? 您可能必须将用户jenkins添加到docker组。

如果一切安装妥当,Jenkins可以运行Docker。 用户configuration可以完成,Jenkins用户能够运行docker,但仍然Cannot connect to the Docker daemon. Is the docker daemon running on this host? Cannot connect to the Docker daemon. Is the docker daemon running on this host?

我只需要在构build中执行以下内容

+ id uid=987(jenkins) gid=982(jenkins) groups=982(jenkins)

看到与bash用户的区别
-bash-4.2$ id uid=987(jenkins) gid=982(jenkins) groups=982(jenkins),981(docker)

看到docker工人失踪 只需要重新启动jenkins!