Docker Image не использует Java 8? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть приложение Java EE8, которое развернуто на JBoss WildFly 16.0.0.Final и обращается к MongoDB с помощью Hibernate OGM.

Я создал настроенный контейнер Docker, используя этот файл Docker:

FROM openjdk:8

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME

RUN echo $JAVA_HOME
RUN java -version

FROM jboss/wildfly

# ARG are also known as build-time variables
ARG EAR_FILE=./build/libs/GoStopHandle.ear
ARG WILDFLY_MODULES=./wildfly-as/16.0.0.Final/modules

# Add
COPY ${WILDFLY_MODULES}/system/layers/base/org/hibernate/search/ /opt/jboss/wildfly/modules/system/layers/base/org/hibernate/search/
COPY ${WILDFLY_MODULES}/org/hibernate/hql/ /opt/jboss/wildfly/modules/org/hibernate/hql/
COPY ${WILDFLY_MODULES}/org/hibernate/ogm/ /opt/jboss/wildfly/modules/org/hibernate/ogm/
COPY ${WILDFLY_MODULES}/system/layers/base/org/apache/lucene/ /opt/jboss/wildfly/modules/system/layers/base/org/apache/lucene/

COPY ./mysqldatabase/mysql/main/ /opt/jboss/wildfly/modules/system/layers/base/com/mysqldatabase/mysql/main/

ADD standalone.conf /opt/jboss/wildfly/bin/

# Add the GoStopHandle ear to the container
ADD ${EAR_FILE} /opt/jboss/wildfly/standalone/deployments/

RUN /opt/jboss/wildfly/bin/add-user.sh NOTiFY Biggles-1957
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "--server-config=standalone-full.xml", "-Dee8.preview.mode=true"]

По-видимому, используется Java 8:

Шаг 6/20: RUN java -version ---> Запуск в 36b53e1a17a2 openjdk версия "1.8.0_212" среда выполнения OpenJDK (сборка 1.8.0_212-8u212-b01-1 ~ deb9u1-b01) Виртуальная 64-разрядная серверная виртуальная машина OpenJDK (сборка 25.212-b01, смешанный режим)

Однако, когда я:

sudo docker run -d -p 8080 gostophandle:latest

и в журнале я получаю:

Нераспознанная опция VM 'PrintGCDateStamps' Ошибка: не удалось создать Виртуальная машина Java. Ошибка: произошло фатальное исключение. программа выйдет.

Что означает, что я работаю на Java 9+. Как «PrintGCDateStamps» работает с Java 8.

За пределами Docker все нормально работает с:

MacBook-Pro:GoStopHandle NOTiFY$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
...