执行 k8s:build 时无法使用 JKube 插件生成 Docker 图像

Unable to generate Docker image using JKube plugin when executing k8s:build

我正在使用 Jkube maven 插件通过 Ubuntu 下的 AWS EC2 实例上的 Jenkins 管道生成 Docker 图像。
当管道执行 mvn clean install k8s:build 时出现此错误:

[ERROR] Failed to execute goal org.eclipse.jkube:kubernetes-maven-plugin:1.3.0:build (default-cli) on project social-carpooling-frontend: Execution default-cli of goal org.eclipse.jkube:kubernetes-maven-plugin:1.3.0:build failed: No <dockerHost> given, no DOCKER_HOST environment variable, no read/writable '/var/run/docker.sock' or '//./pipe/docker_engine' and no external provider like Docker machine configured -> [Help 1]

这是 Jenkins 管道:

pipeline {
  agent any
  stages {
    stage('Docker Check Stage') {
      steps {
        sh '/home/bitnami/downloads/apache-maven-3.8.1/bin/mvn clean install k8s:build -Premote'
      }
    }
  }
}

当我使用 ssh 登录到这台机器并执行 docker -v 时,它说 Docker version 20.10.0, build 7287ab3

所以 Docker 确实已安装并且守护进程已启动,但是当我通过 maven 触发它时似乎找不到它! 有什么想法吗?

问题是由于 运行 maven 命令的用户无权访问 docker.sock

解决方法是修改docker.sock的read/write权限,这样:

sudo chmod 776 /var/run/docker.sock