执行 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
我正在使用 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