【发布时间】:2019-08-18 13:03:46
【问题描述】:
我有一个 Java EE8 应用程序,它部署在 JBoss WildFly 16.0.0.Final 上,它使用 Hibernate OGM 访问 MongoDB。
我已经构建了一个定制的 Docker 容器
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/
RUN ls -la /opt/jboss/wildfly/modules/system/layers/base/com/mysqldatabase/mysql/main/
RUN ls -la /opt/jboss/wildfly/modules/system/layers/base/org/hibernate/search/
RUN ls -la /opt/jboss/wildfly/modules/org/hibernate/hql/
RUN ls -la /opt/jboss/wildfly/modules/org/hibernate/ogm/
RUN ls -la /opt/jboss/wildfly/modules/system/layers/base/org/apache/lucene/
#ADD standalone-full.xml /opt/jboss/wildfly/standalone/configuration/
#RUN ls -la /opt/jboss/wildfly/standalone/configuration/
#ADD standalone.conf /opt/jboss/wildfly/bin/
#RUN ls -la /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 admin welcome1 --silent
CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]
并添加了 Hibernate OGM 所需的模块/JARS 并添加了我的 EAR。
我可以构建并运行 Docker 映像,它可以正常启动,尽管无法连接到 MongoDB 容器。我需要添加我的数据源等。
容器 ID 图像命令
创建状态端口
名称 f0e0c4a948ec gostophandle "/opt/jboss/wildfly/..."
22 小时前 22 小时前 0.0.0.0:32779->8080/tcp
blissful_newton 93e95917216d mongo
“docker-entrypoint.s…” 22 小时前 上升 22 小时
0.0.0.0:27017-27019->27017-27019/tcp goStopHandleMongo
所以我添加了我的:standalone.conf 和standalone-full.xml
ADD standalone-full.xml /opt/jboss/wildfly/standalone/configuration/
ADD standalone.conf /opt/jboss/wildfly/bin/
即使构建了 Docker 映像,它现在也不会运行,只是返回:
MacBook-Pro:GoStopHandle NOTiFY$ sudo docker run -d -p 8080 gostophandle:latest
Password:
f3a6b533893f0cbfc8ab14604c7a780440ff8b568c2136a2c7db11ffa856939c
MacBook-Pro:GoStopHandle NOTiFY$
【问题讨论】:
-
如果没有来自容器的日志,就无法真正说出发生了什么。请在您的帖子中提供
docker logs stopped_containerId的输出。可以使用docker ps -a检索停止的容器 ID。 -
我的回答显示了日志和原因 -> 'PrintGCDateStamps',这是 Java 8 的功能。已将其删除,一切正常。