dccker-maven插件出现“Failed to execute goal com.spotifydocker-maven-plugin0.4.13....Permission den问题

本文主要是介绍dccker-maven插件出现“Failed to execute goal com.spotifydocker-maven-plugin0.4.13....Permission den问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

个人在使用docker-maven-plugin来构建镜像的时候出现了permission deny的错误,具体错误日志如下所示:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project tomcat-container: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.io.IOException: Permission denied -> [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 
[ERROR] mvn <goals> -rf :tomcat-container

按照通常经验来说出现权限不足错误的时候,我们直接切换到root用户下边来执行该问题一般都可以被解决,但是我在实际操作的过程中,发现在切换到root用户后执行该插件会一直被阻塞**(笔者所用操作系统:deepin 20 beta)**。经过苦苦探寻,最终找到了解决该问题的方法。分享于此,希望能够同样遇到该错误的小伙伴以帮助。

解决方法

首先,因为以root用户权限执行会出现直接阻塞的问题,因此考虑能否给普通用户以docker的执行权限,此时我考虑到可以将当前用户之间添加到docker的用户组中,这样问题应该就能解决。因此我执行了如下命令:

#切换到root用户,如果不想切换可以在执行下边每一个命令的时候,前边都加上sudo
su root 
# 将vcjmhg加入到docker用户组中
usermod -a -G docker vcjmhg 
# 重启dokcer
service docker restart 
#测试 docker能否正常使用
docker ps

但是我在执行完前边操作的时候,发现执行dcker ps的时候仍然会出现权限不足的错误,具体报错信息如下:

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/json": dial unix /var/run/docker.sock: connect: permission denied

此时,可能就郁闷了,我已经加入到docker用户组了为何还会出现这种错误???

原因在于虽然用户加入到了docker用户组,但是当前用户没有切换到docker用户组,所以还是没有权限。

为了解决该问题,我们考虑将当前用户切换到docker用户组中,来执行docker相关操作,也即必行下边命令:

newgrp docker

执行完成之后,我们再执行docker ps命令,发现已经可以正常的出现结果了。同时在运行插件,原来的错误也解决了。

升级版

经过上边的一系列操作,从某种程度上说,我们已经解决了问题。但这个问题解决的不够优雅。

为何这样说那?

因为我们每次执行docker命令之前都必须先切换到docker用户组里边,也就是说我们每次在打开一个新的terminal的时候,我们都要先执行newgrp docker命令,这对我一个强迫症来说难以接受,因此考虑能否从docker.sock文件入手来解决该问题。

说干就干,首先我们先看一下/var/run/docker.sock的文件权限

sudo ls -al /var/run/docker.sock

执行结果如下:

srw-rw---- 1 root docker 0 Aug 25 10:09 /var/run/docker.sock

发现普通用户是没有权限操作该文件的,因此考虑修改文件权限,执行如下命令:

sudo chmod 666 /var/run/docker.sock

然后我们重新执行docker ps命令发现可以出现正常的结果:

在这里插入图片描述

至此,问题得以圆满解决。

这篇关于dccker-maven插件出现“Failed to execute goal com.spotifydocker-maven-plugin0.4.13....Permission den问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/669381

相关文章

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插