GAE在Docker内部.无法公开8080



我有一个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

现在它可以正常工作

尽管我不知道为什么有效。我仍然感谢答案比这个答案更正确

最新更新