pserve 在 docker 容器内不起作用

hem*_*nni 1 python pyramid docker

我正在尝试使用 docker-container 开发金字塔应用程序。我使用以下 docker 文件构建了一个 docker 图像。

FROM ubuntu
RUN  apt-get -y update
RUN  apt-get -y install python3.6 python3.6-dev libssl-dev wget git python3-pip libmysqlclient-dev
WORKDIR /application
COPY . /application
RUN pip3 install -e .
EXPOSE 6543
Run Code Online (Sandbox Code Playgroud)

这是我的 docker-compose 文件

version: '3'
services:
  webserver:
    ports:
      - 6543:6543
    build:
      context: .
      dockerfile: Dockerfile-development
    volumes:
      - .:/application
    command: pserve development.ini --reload
Run Code Online (Sandbox Code Playgroud)

docker镜像创建成功。但是当我运行 d ocker-compose up并浏览 url localhost:6543 时,它显示该站点现在无法访问。但是当我使用pserve development.ini在本地运行它时,它工作正常。我尝试以交互方式连接到 docker 并运行命令 pserve develpment.ini,它显示为

Starting server in PID 18.
Serving on http://localhost:6543
Run Code Online (Sandbox Code Playgroud)

但是当我从 chrome 浏览 url 时它不起作用。

Shu*_*ham 5

您需要监听所有网络接口。在您的development.ini文件中,使用:

listen = *:6543
Run Code Online (Sandbox Code Playgroud)

你应该得到一个日志,上面写着:

Serving on http://0.0.0.0:6543
Run Code Online (Sandbox Code Playgroud)

然后尝试使用localhost:6543.