我是码头工人的新手。我只是试着在我的本地机器(Ubuntu 16.04)上使用docker和Jenkins。
我用下面的管道脚本配置了一个新作业。
node {
stage('Build') {
docker.image('maven:3.3.3').inside {
sh 'mvn --version'
}
}
}
但是它失败了,错误如下:
在unix:///var/run/ Docker .sock试图连接到Docker守护进程套接字时被拒绝
我可以在不更改本地unix套接字/var/run/docker.sock上的权限的情况下使其工作。我需要做的是在构建代理节点上启用tcp连接,然后在Jenkins云配置中指定docker主机。
假设您正在使用aws映像,ssh到构建代理节点,并使用/etc/sysconfig/docker文件启用tcp端口
增加-H tcp://0.0.0.0:2376选项。
# Additional startup options for the Docker daemon, for example:
# OPTIONS="--ip-forward=true --iptables=true"
# By default we limit the number of open files per container
OPTIONS="-H tcp://0.0.0.0:2376 --default-ulimit nofile=1024:4096"
确保使用sudo service docker restart重新启动守护进程
最后,您需要告诉Jenkins使用云节点配置中配置的DOCKER_HOST环境变量默认使用tcp。注意,这不是Jenkins管道环境中的配置。
导航到Jenkins ->管理Jenkins ->管理云和节点->部分配置-> .
节点属性->环境变量
然后添加DOCKER_HOST环境变量。
注意:我通过ssh使用启动代理来实现这一工作。