我有一个GAE应用程序和一堆工作人员,因此为人们节省了设置所有依赖关系的麻烦,我希望他们能允许他们运行GAE开发服务器在码头容器中。
我的dockerfile以:
结尾CMD dev_appserver.py app_localhost.yaml
和我的码头组合就像:
version: '3'
services:
my_image:
build: ./my_image
image: my_image
ports:
- "8080:8080"
- "8000:8000"
volumes:
- ./my_image:/usr/src/
构建此功能正常。并且使用docker-compute up
运行它似乎也可以正常工作。我的意思是,它具有友好的输出,说默认模块可在8080和所有这些好东西访问。
但是,如果我通过Chrome访问LocalHose:8080,我将获得ERR_SOCKET_NOT_CONNEDED。如果我尝试curl
,我会得到curl: (56) Recv failure: Connection reset by peer
。
当我在容器外运行时,它运行正常,并且可以访问。
docker ps 56 ↵
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3a2ae48f1f66 waxed_backend_image "/bin/sh -c 'dev_a..." 9 hours ago Up 8 hours 0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp dockerpygae_waxed_backend_1
这是我遇到的一个可能相关的问题:从docker内部容器向Localhost提出请求,似乎每次我尝试以任何Dockery的方式与GAE Development Server进行通信时,事情都会开始发生可怕的错误
我更改了此:
CMD dev_appserver.py app_localhost.yaml
:
CMD dev_appserver.py --host 0.0.0.0 app_localhost.yaml
现在它可以正常工作
尽管我不知道为什么有效。我仍然感谢答案比这个答案更正确