У меня есть приложение 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