SonarQube 7.9的JDK Alpine镜像升级问题整理
发布日期:2021-06-30 20:13:39
浏览次数:2
分类:技术文章
本文共 3225 字,大约阅读时间需要 10 分钟。
SonarQube的LTS 7.9版需要的Java 11,否则即使镜像构建成功,在启动的时候还是会提示出错导致服务无法运行。而如果使用了OpenJDK的Alpine版的镜像,升级的时候会发现目前仍然不存在Alpine版本的Java 11的镜像。另外从7.9开始SonarQube抛弃了MySQL是另外一个重要的事项。SonarQube 7.9.1镜像
使用OpenJDK 8 的Alpine基础镜像的情况下,SonarQube7.9和7.9.1的镜像大小相差无几,都是不到300M。
错误信息提示
使用docker-compose启动MySQL + SonarQube的服务,会发现SonarQube无法启动,错误提示信息入下所示:
sonarqube_1 | Exception in thread "main" java.lang.IllegalStateException: SonarQube requires Java 11+ to runsonarqube_1 | at org.sonar.application.App.checkJavaVersion(App.java:93)sonarqube_1 | at org.sonar.application.App.start(App.java:56)sonarqube_1 | at org.sonar.application.App.main(App.java:98)
不存在的OPENJDK 11(Alpine版)
Alpine版本的JDK的tag为<版本号>-alpine,比如Java 8 和Java 12
[root@liumiaocn ~]# docker images |grep openjdkdocker.io/openjdk 8-alpine a3562aa0b991 5 months ago 105 MBdocker.io/openjdk 12-alpine 0c68e7c5b7a0 8 months ago 339 MB[root@liumiaocn ~]#
但是Java 11并不存在,使用docker pull试图拉取则会提示错误
[root@liumiaocn ~]# docker pull openjdk:11-alpineTrying to pull repository docker.io/library/openjdk ... manifest for docker.io/openjdk:11-alpine not found[root@liumiaocn ~]#
不支持MySQL
SonarQube 7.9及其以后不再提供对MySQL的支持,如果试图和MySQL进行关联,可能会得到如下的错误信息提示
sonarqube_1 | #############################################################################################################sonarqube_1 | # End of Life of MySQL Support : SonarQube 7.9 and future versions do not support MySQL. #sonarqube_1 | # Please migrate to a supported database. Get more details at #sonarqube_1 | # https://community.sonarsource.com/t/end-of-life-of-mysql-support #sonarqube_1 | # and https://github.com/SonarSource/mysql-migrator #sonarqube_1 | #############################################################################################################
仔细看了一下今年在7.9的LTS版发布的时候SonarQube的社区中原来已经有过相关提示了。
无法打开es.log的错误提示
sonarqube_1 | tail: can't open './logs/es.log': No such file or directorysonarqube_1 | tail: './logs/es.log' has appeared; following new file...省略sonarqube_1 | at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.8.0.jar:6.8.0]sonarqube_1 | at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.8.0.jar:6.8.0]sonarqube_1 | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.8.0.jar:6.8.0]sonarqube_1 | at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.8.0.jar:6.8.0]sonarqube_1 | Caused by: java.lang.RuntimeException: can not run elasticsearch as root
实际上的问题是这里“can not run elasticsearch as root”。SonarQube镜像必须指定USER才行。
Sonar-Scanner的Java版要求
在SonarQube 8之后,Sonar-Scanner将会被要求使用Java 11
WARN: SonarScanner will require Java 11+ to run starting in SonarQube 8.x
其他问题
在stack overflow上也有一个问题关于为什么没有Alpine 的JDK 11和为什么JDK 11变得这么大的问题:
- https://stackoverflow.com/questions/53375613/why-is-the-java-11-base-docker-image-so-large-openjdk11-jre-slim
直接回答中并没有给出特别清晰地说明,但是Alpine版本的JDK 11的镜像没有这个事实也说明了,而且musl的关键字又一次出现在我们的视线之中。
转载地址:https://liumiaocn.blog.csdn.net/article/details/102691257 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月23日 14时53分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
1051. Pop Sequence (25)
2019-04-30
ELK系列:新版ELK安装(windows与linux环境)
2019-04-30
Discovering Neural Wiring(2019 nips, nas)
2019-04-30
2020kickstart E round C Toys (优先队列)
2019-04-30
pytorch raise NotImplementedError
2019-04-30
LeetCode 887. 鸡蛋掉落
2019-04-30
第七届acm省赛总结
2019-04-30
oj第一次打字比赛成绩
2019-04-30
山东理工大学 2506 完美网络
2019-04-30
pat 城市救援 最短路
2019-04-30
poj 2533 Longest Ordered Subsequence
2019-04-30
poj 1068 Parencodings
2019-04-30
poj 1936 All in All
2019-04-30
hihocoder 1555 四次方根(矩阵快速幂)
2019-04-30
codeforces 449 D Jzzhu and Numbers(容斥+dp)
2019-04-30
hdu 5450 Traversal(状压dp)
2019-04-30
Gym - 101334E Exploring Pyramids(dp+分治)
2019-04-30
uva 10934 Dropping water balloons(dp)
2019-04-30