GAE 内部 docker。不能暴露8080

GAE inside docker. cant expose 8080

我有一个 GAE 应用程序和一群人在做它,这样可以省去设置所有依赖项的麻烦,我希望允许他们 运行 gae 开发服务器docker 容器。

我的 docker 文件结尾为:

CMD dev_appserver.py app_localhost.yaml

我的 docker-compose 就像:

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_CONNECTED。如果我尝试 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

我有一个可能相关的问题: 似乎每次我尝试以任何 dockery 方式与 gae 开发服务器通信时,事情都开始变得非常糟糕

我改变了这个:

CMD dev_appserver.py app_localhost.yaml

为此:

CMD dev_appserver.py --host 0.0.0.0 app_localhost.yaml

现在一切正常

虽然我不知道它为什么起作用。我仍然会感谢比这个更正确的答案