如何解决在Docker容器中从JRE更改为JDK
我正在使用tomcat,jre 8(openjdk),alpine linux作为基础映像。 我的Dockerfile如下:
FROM tomcat:8.5.39-jre8-alpine
RUN rm -rf /usr/local/tomcat/webapps/*
COPY target/openjdk8-8.252.09-r0.apk /usr/local/tomcat/.
RUN apk add --allow-untrusted /usr/local/tomcat/openjdk8-8.252.09-r0.apk
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH=/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/bin
RUN export JAVA_HOME
RUN export PATH
我想用jdk8代替jre8。
为此,我下载了相同版本的JDK8并将其安装在alpine linux上。
COPY target/openjdk8-8.252.09-r0.apk /usr/local/tomcat/.
RUN apk add --allow-untrusted /usr/local/tomcat/openjdk8-8.252.09-r0.apk
为确保选择所需的java(JDK8),我设置了JAVA_HOME和PATH。
ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH=/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/bin
但是当我运行Tomcat时(当我运行容器时),
/usr/lib/jvm/java-1.8-openjdk/jre
已登录控制台,这意味着原始JRE仍在使用中。
我已阅读this one. 但是我不清楚他的意思。
是否有任何解决方法或任何使它起作用的方法? 还是我在哪里弄错了?
欢呼
解决方法
我在带有以下Docker的Docker映像中使用带有Alpine的OpenJDK8:
FROM alpine:3.11.3
ENV LANG=C.UTF-8 \
JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk \
PATH=$PATH:/usr/lib/jvm/java-1.8-openjdk/bin/
RUN set -x apk add --no-cache openjdk8
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。