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

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

解决RocketMQ的幂等性问题

《解决RocketMQ的幂等性问题》重复消费因调用链路长、消息发送超时或消费者故障导致,通过生产者消息查询、Redis缓存及消费者唯一主键可以确保幂等性,避免重复处理,本文主要介绍了解决RocketM... 目录造成重复消费的原因解决方法生产者端消费者端代码实现造成重复消费的原因当系统的调用链路比较长的时

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

Spring的RedisTemplate的json反序列泛型丢失问题解决

《Spring的RedisTemplate的json反序列泛型丢失问题解决》本文主要介绍了SpringRedisTemplate中使用JSON序列化时泛型信息丢失的问题及其提出三种解决方案,可以根据性... 目录背景解决方案方案一方案二方案三总结背景在使用RedisTemplate操作redis时我们针对

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

Kotlin Map映射转换问题小结

《KotlinMap映射转换问题小结》文章介绍了Kotlin集合转换的多种方法,包括map(一对一转换)、mapIndexed(带索引)、mapNotNull(过滤null)、mapKeys/map... 目录Kotlin 集合转换:map、mapIndexed、mapNotNull、mapKeys、map

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx