【发布时间】:2021-12-10 23:16:36
【问题描述】:
我想对旧的 jboss 服务器 (7.0.0) 进行 dockerize。这是我的Dockerfile 和docker-compose.yml:
FROM centos:7.9.2009
RUN yum -y install java-1.8.0-openjdk-devel unzip
COPY jboss-eap-7.0.0.zip .
RUN unzip jboss-eap-7.0.0.zip -d /opt/
RUN ln -s /opt/jboss-eap-7.0/ /opt/jboss
RUN adduser jboss
RUN chown -R jboss /opt/jboss-eap-7.0/ /opt/jboss
ENTRYPOINT [ "/opt/jboss/bin/standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management=0.0.0.0" ]
version: '3.0'
services:
ab3:
build: .
ports:
- "8080:8080"
- "9990:9990"
在日志中我可以看到 jboss 已经成功启动并且正在监听端口:
INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080
...
INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
使用http://localhost:8080/ 在浏览器中签入时,我得到ERR_EMPTY_RESPONSE。我在这里错过了什么?
【问题讨论】:
-
可能你的一些环回 ip 被防火墙阻止了
-
我不希望容器以
ENTRYPOINT行启动;它只运行一个 shell 字,空格和-D选项被解析为它期望运行的文件名的一部分。考虑删除 JSON 格式["..."]并在那里使用纯 shell 命令。 (我个人也会将ENTRYPOINT更改为CMD,这样更容易在图像上启动调试shell。) -
@DavidMaze 使用 CMD 并删除 JSON 格式修复它。如果您将评论更改为答案,我很乐意接受它作为正确答案。
标签: docker docker-compose jboss