docker中的野蛮群体 – 启动http服务器的exception

我在Docker中运行一个jar文件(主机macosx),并在启动过程中,我得到这个堆栈跟踪:

10:42:28,101 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener rating_1 | 10:42:28,401 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ rating_1 | ("subsystem" => "undertow"), rating_1 | ("server" => "default-server"), rating_1 | ("http-listener" => "default") rating_1 | ]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener rating_1 | Caused by: java.net.SocketException: Protocol family unavailable"}} rating_1 | 10:42:28,405 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "ejb3")]) - failure description: {"WFLYCTL0288: One or more ser vices were unable to start due to one or more indirect dependencies not being available." => { "Services that were unable to start:" => [ "jboss.ejb.default-local-ejb-receiver-service", "jboss.ejb3.ejbClientContext.default", "jboss.ejb3.localEjbReceiver.value" ], "Services that may be the cause:" => ["jboss.remoting.remotingConnectorInfoService.http-remoting-connector"] }} 

看来,它不能启动http服务器,一些服务没有安装? 我使用正确的docker图像吗?

Dockerfile:

 FROM java:8 RUN mkdir -p /var/rating ADD *.jar /var/rating #ADD tomcat-users.xml /usr/local/tomcat/conf/ EXPOSE 8095 EXPOSE 8096 CMD ["java", "-jar", "/var/rating/ratingFacade-swarm.jar", "-server", "-d 64"] 

我可能做错了,但我不知道是什么! 这可能是一个接口或套接字问题?

编辑:

这些是我在docker-compose.yml中传递的环境variables:

 JAVA_TOOL_OPTIONS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8096,server=y,suspend=n -Dfile.encoding=UTF-8 -Xms128M -Xmx384M -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=8 -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+ScavengeBeforeFullGC -XX:+UseBiasedLocking -Dswarm.project.stage=stage -Dswarm.http.port=8095" 

java.net.SocketException: Protocol family unavailable部分似乎最重要。 我会尝试添加通常的-Djava.net.preferIPv4Stack=true ,看看是否有帮助。

Interesting Posts