我将Sonarqube服务器从6.7社区升级到7.8社区,因为最新版本可以在openjdk 11上运行。Sonarqube托管的docker映像正在openjdk 8上运行。我试图使映像在自定义openjdk 11上运行版本java-11-openjdk-11.0.3.7-0.0.1.el7_6.x86_64。
FROM sonarqube:7.8-community
COPY plugins /opt/sonarqube/extensions/plugins
COPY openjdk-11.0.3.tar.gz .
USER root
RUN \
tar -xvzf openjdk-11.0.3.tar.gz -C /usr/local && \
rm -rf openjdk-11.0.3.tar.gz
ENV JAVA_HOME /usr/local/java-11-openjdk-11
泊坞窗映像无法启动,并显示以下错误。
2019.06.21 18:20:46 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.06.21 18:20:46 INFO app[][o.e.p.PluginsService] no modules loaded
2019.06.21 18:20:46 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.06.21 18:20:48 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 1
2019.06.21 18:20:48 INFO app[][o.s.a.SchedulerImpl] Process[es] is stopped
2019.06.21 18:20:48 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
是否有更好的方法来切换Java版本?
还要如何从Docker容器内部重新启动Sonarqube服务器?
答案 0 :(得分:0)
问题所在的Java主目录未添加到路径中。我修改了Dockefile如下,它开始工作。
FROM sonarqube:7.8-community
COPY plugins /opt/sonarqube/extensions/plugins
COPY openjdk-11.0.3.tar.gz .
USER root
RUN \
tar -xvzf openjdk-11.0.3.tar.gz -C /usr/local && \
rm -rf openjdk-11.0.3.tar.gz
ENV JAVA_HOME /usr/local/java-11-openjdk-11
ENV PATH="$JAVA_HOME/bin:${PATH}"