【发布时间】:2018-12-14 09:27:25
【问题描述】:
我有一个 docker-compose 配置,如下所示:
version: '3.7'
services:
flask:
command: [python, app.py]
ports:
- "127.0.0.1:5000:5000"
frontend:
command: [sh, -c, "npm run start"]
ports:
- "127.0.0.1:7600:7600"
links:
- flask
frontend 容器有一个 webpack 开发服务器正在运行,它代理 /api/* 路径请求到 flask:5000 进行处理。当我使用docker-compose up -d 时,这很有效。
但是,假设我想使用 pdb 在烧瓶应用程序中调试某些东西,然后我手动运行它而不是使用:
docker-compose stop flask
docker-compose run --rm --service-ports flask python app.py
然后突然间,我的 frontend 服务无法将请求代理到我的 flask 服务,我收到如下错误:Error occurred while trying to proxy request /testing from frontend:7600 to http://flask:5000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
我错过了什么?如何使此配置适用于我的 python 代码的交互式调试?
编辑:我正在运行 Docker version 18.09.0, build 4d60db4 和 docker-compose version 1.23.2, build 1110ad01
【问题讨论】:
-
你使用的是什么版本的 docker compose?
-
@Siyu 添加了版本信息。
-
链接字段已弃用,请勿使用。为什么要在端口字段中指定 ip?删除它并重试
-
@ChristianSauer 在绑定端口时使用
127.0.0.1是一种安全的良好做法,不会导致任何问题。
标签: python docker flask docker-compose