【问题标题】:pserve not working inside docker containerpserve 在 docker 容器内不工作
【发布时间】:2019-12-10 07:02:19
【问题描述】:

我正在尝试使用 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

这是我的 docker-compose 文件

version: '3'
services:
  webserver:
    ports:
      - 6543:6543
    build:
      context: .
      dockerfile: Dockerfile-development
    volumes:
      - .:/application
    command: pserve development.ini --reload

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

Starting server in PID 18.
Serving on http://localhost:6543

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

【问题讨论】:

  • 您是否能够访问容器内的服务器,即使用localhost:6543
  • 我如何在容器中测试它。 ?
  • exec 在容器中运行curl 命令。检查您是否收到回复。
  • 我正在运行服务器 pserve。那么,无论如何我可以在后台运行 pserve。因为只有我可以在容器控制台上运行另一个命令。 @shub
  • docker run 命令之后,您可以使用docker ps 找到正在运行的容器,然后您可以执行到它以发出其他命令,例如docker exec -it <container_name> <command_to_execute>

标签: python docker pyramid


【解决方案1】:

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

listen = *:6543

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

Serving on http://0.0.0.0:6543

然后尝试使用localhost:6543从您的主机访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2023-01-18
    相关资源
    最近更新 更多