我有一个RESTful应用程序,它接受一个回调URL作为参数,在端口8000上运行。它做了一些工作,并调用回调URL,以确保它应该继续工作,并在出现任何错误时调用。在我的测试中,我只是在本地主机端口8009上启动一个HTTP服务器来等待响应。
当我直接运行应用程序时,它工作得很好,因为localhost是相同的。但是,当我在容器中本地运行应用程序时,由于容器的网络隔离,它显然无法工作。这是我的docker-compose.yml的一部分
version: '3'
services:
app:
build: .
ports:
- "8000:8000"我尝试在ports下添加- "8009:8009",但这只是一个方向。我可以调用端口8000来调用API,但是我不知道如何允许容器调用我笔记本电脑的http://localhost:8009。
您是否知道如何允许容器调用我笔记本电脑上的另一个端口,或者是否有更好的方法来测试回调功能?我可以在容器中运行测试,但我喜欢能够单独运行它们。
发布于 2020-03-05 01:38:58
在docker-compose文件中使用--network:" host“,那么docker容器中的localhost将指向您的docker主机。
如果您的笔记本电脑正在运行Mac和Windows,请使用主机host.docker.internal,它将解析为主机的IP地址,然后使用您的笔记本电脑主机名进行连接。
https://stackoverflow.com/questions/60531220
复制相似问题