Search code examples
pythonpython-3.xdockerpyramiddockerfile

Port mapping in Docker


I created a docker for a sample python pyramid app. My dockerfile is this:

FROM ubuntu:16.04

RUN apt-get update -y && \
    apt-get install -y python-pip python-dev curl && \
    pip install --upgrade pip setuptools

WORKDIR /app

COPY . /app

EXPOSE 6543

RUN pip install -e .

ENTRYPOINT [ "pserve" ]

CMD [ "development.ini" ]

My build command is this:

docker build -t pyramid_app:latest .

My run command is this:

docker run -d -p 6543:6543 pyramid_app

When i try to access http://localhost:6543 I get an error

Failed to load resource: net::ERR_SOCKET_NOT_CONNECTED

When I curl inside the machine it works fine.

It would be great if someone could help me figure out why my port mapping isn't working.

Thanks.


Solution

  • in your pserve config, change

    [server:main]
    listen = 127.0.0.1:6543
    

    to

    [server:main]
    listen = *:6543
    

    otherwise the web server will only accept connections from the docker container itself