问题描述: 在Ubuntu20.0.4上安装了Jenkins,用Jenkins构建项目成docker镜像,在push镜像到nexus私服的时候报如下错误:
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.2.2:build (default) on project xxxx: Exception caught: unauthorized: access to the requested resource is not authorized -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
问题分析:
因Ubuntu安装Jenkins是默认创建了一个jenkins用户的,所以在Jenkins的操作的时候基本都是用jenkins用户操作的,我之前对这个不了解,所以没有注意,一直在用root用户操作,应正确操作了没有注意到权限问题,导致此问题搞了很久。
在网上搜索了很多答案,最后综合一步一步的解决了此问题,具体解决问题如下:
1、把jenkins用户加入到docker用户组,事jenkins可以正常执行docker命令;
sudo usermod -aG docker jenkins
2、在安装Jenkins的服务器上用 docker login 命令登录;
sudo docker login ip:端口
然后按照提示输入nexus账号和密码,如登录成功会提示成功,登录成功后会在root ~ 目录下有一个 .docker 目录(/root/.docker),里面有一个 config.json 文件;
3、把 .docker 目录拷贝在jenkins安装目录下去;
cp -r .docker/ /var/lib/jenkins/
这一步很重要,拷贝完后一定要看 /var/lib/jenkins/下 .docker/目录和目录中文件的权限和用户组(我之前使用root用户执行的,拷贝过去是root用户组导致问题卡了很久,最后是在服务器上去把用户切换到jenkins 用jenkins用户去执行 docker ps 命令提示WARNING: Error loading config file: /var/lib/jenkins/.docker/config.json: open /var/lib/jenkins/.docker/config.json: permission denied 没权限才发现)
4、按照上面配置后,然后重启jenkins