2
docker pull kovacshuni/riptube:1.0.0-SNAPSHOT
docker run -it -P --name="riptube" kovacshuni/riptube:1.0.0-SNAPSHOT
bin/riptube &
curl -X POST -d "Hi there" localhost:8082/notify
INFO 15:55:06 c.h.r.NotificationReceiver$ - Hi there

所以这行得通。但是从外部,从 docker 守护进程的主机来看,它没有。尽管有 EXPOSE 命令和 -P 参数。

docker port riptube 8082
0.0.0.0:32785
curl -X POST -d "Hi there" localhost:32785/notify
curl: (52) Empty reply from server

为什么?:( :(

源代码在这里。Dockerfile 也是如此,但粘贴在下面:

 FROM frolvlad/alpine-oraclejdk8

 RUN apk add --update bash py-pip ca-certificates curl
 RUN rm -rf /var/cache/apk/*
 RUN pip install youtube-dl

 WORKDIR /opt/riptube
 ADD target/pack/ /opt/riptube
 EXPOSE 8082
 ENTRYPOINT /bin/bash
 CMD
4

2 回答 2

7

我有同样的问题:

替换这个:

private val httpBindingF = Http().bindAndHandle(ripController.route, "localhost", 8080)

有了这个:

private val httpBindingF = Http().bindAndHandle(ripController.route, "0.0.0.0", 8080)

令人惊讶的是,它对我有用!

于 2015-10-17T22:16:36.490 回答
0

假设您不在 Linux 机器上,我想您必须在 vm 中转发您的端口:

$ VBoxManage controlvm "name-of-your-vm" natpf1 "tcp-port8082,tcp,,8082,,8082"
于 2015-08-27T16:22:56.400 回答