1

我在我的 Ubuntu 19.04 机器上安装了 Docker(19.03.3)和 Jenkins(来自https://jenkins.io/download/的 2.190.2 LTS)。Jenkinsfile然后我创建了一个管道,该管道从我创建的示例 Git 存储库中加载一个。在 Jenkins 指示 Docker 拉取映像之前,一切正常。回应是系统没有这样做的权限。我已经将我的系统用户添加到docker组 ( ) 并在我的终端中sudo usermod -aG docker $USER成功测试。docker pull node:6-alpine但詹金斯仍然失败。

有人知道问题是什么吗?我想这不是很复杂,而是一个典型的配置错误。

詹金斯管道控制台输出:

Started by user John Doe
Obtained Jenkinsfile from git http://repo.myserver.com/john/example-app.git
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/lib/jenkins/workspace/example-app-builder
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
using credential jenkins
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url http://repo.myserver.com/john/example-app.git # timeout=10
Fetching upstream changes from http://repo.myserver.com/john/example-app.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials Credentials for repo.myserver.com.
 > git fetch --tags --force --progress -- http://repo.myserver.com/john/example-app.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision f578983d6e153b3063e184c8df194dcff6ee39ab (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f f578983d6e153b3063e184c8df194dcff6ee39ab # timeout=10
Commit message: "Add initial Jenkinsfile."
 > git rev-list --no-walk f578983d6e153b3063e184c8df194dcff6ee39ab # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . node:6-alpine
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/node:6-alpine/json: dial unix /var/run/docker.sock: connect: permission denied
[Pipeline] isUnix
[Pipeline] sh
+ docker pull node:6-alpine
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/create?fromImage=node&tag=6-alpine: dial unix /var/run/docker.sock: connect: permission denied
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
4

1 回答 1

1

您的 Jenkins 不与dockers用户一起运行。它与用户一起运行jenkins。因此,该命令应如下所示,以允许用户jenkins创建 Docker 容器:

sudo usermod -aG docker jenkins

于 2019-11-12T15:14:25.860 回答