您的位置:首页 > 运维架构 > Docker

解决Alpine为基础镜像的docker环境下无法运行sonar-scanner命令的问题

2018-01-10 15:49 766 查看
最近在使用sonar-scanner对代码做静态分析,用着不错,并决定将其封装到docker环境下,dockerhub上也有现成的镜像,可以直接去dockerhub拉取,本文在sonarqube官网上下载了sonar-scanner-3.0.3.778-linux包并将其封装到Alpine基础镜像之后,运行docker后,进入容器,提示找不到jre/bin/java

报错信息:sonar-scanner:exec: line 73: xxx/sonar-scanner-3.0.3.778-linux/jre/bin/java:  not found

之前出现过类似的问题,怀疑是少装了包,于是根据以往的经验上,添加了g++和gcc,然后尝试执行sonar-scanner,还是不行,于是在网上找了一番,没有得到满意的答案,于是去docker-hub上找基于alpine的sonar-scanner镜像,也没看出个所以然来,后来在https://github.com/newtmitch/docker-sonar-scanner/blob/master/Dockerfile.sonarscanner-3.0.3-alpine对应 的Dockerfile中发现,

查看Dockerfile,发现在文件中有一句

RUN sed -i 's/use_embedded_jre=true/use_embedded_jre=false/g' /root/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner

才找到原因,sonar-scanner默认会使用自己提供的jre,而不会使用系统环境下的jre, 只需要将开关关闭,也即修改sonar-scanner运行脚本中的参数use_embeded_jre为:use_embedded_jre=false即可

最后问题得到解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐