0

I have a GAE application and a bunch of people working on it so to save people the trouble of setting up all the dependencies and whatnot I was hoping to allow them to run the gae development server in a docker container.

My dockerfile ends with:

CMD dev_appserver.py app_localhost.yaml

And my docker-compose is like:

version: '3'
services:
  my_image:
    build: ./my_image
    image: my_image
    ports:
      - "8080:8080"
      - "8000:8000"
    volumes:
      - ./my_image:/usr/src/

building this works fine. And running it with docker-compute up also seems to work fine. I mean, it has friendly output saying that the default module is accessible at 8080 and all that good stuff.

But if I access localhose:8080 via chrome I get ERR_SOCKET_NOT_CONNECTED. If I try curl it I get curl: (56) Recv failure: Connection reset by peer.

It all runs fine and is accessable when I run it outside the container.

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

Here's a possibly related problem I have: making requests to localhost from inside docker container It seems that every time I try to communicate with the gae development server in any dockery way things start to go horribly wrong

Community
  • 1
  • 1
Sheena
  • 15,590
  • 14
  • 75
  • 113

1 Answers1

3

I changed this:

CMD dev_appserver.py app_localhost.yaml

To this:

CMD dev_appserver.py --host 0.0.0.0 app_localhost.yaml

And now it works fine

Although I dont know why it worked. I'll still appreciate an answer tht is more correct than this one

Sheena
  • 15,590
  • 14
  • 75
  • 113
  • 2
    docs: --host=... The host address to use for the server. You may need to set this to be able to access the development server from another computer on your network. An address of 0.0.0.0 allows both localhost access and IP or hostname access. Default is localhost. – voscausa Feb 28 '17 at 13:40