gpt4 book ai didi

python - 使用 docker-compose run 时无法从 up 服务访问容器

转载 作者:行者123 更新时间:2023-12-02 17:18:40 25 4
gpt4 key购买 nike

我有一个如下所示的 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 调试 Flask 应用程序中的某些内容,并且我手动运行它,而不是使用:

docker-compose stop flask 
docker-compose run --rm --service-ports flask python app.py

然后突然间,我的 frontend 服务无法将请求代理到我的 flask 服务,并且我收到如下错误:尝试代理请求时发生错误/从前端测试:7600 到 http://flask:5000 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)

我错过了什么?如何使此配置适用于 python 代码的交互式调试?

编辑:我正在运行Docker版本18.09.0,构建4d60db4docker-compose版本1.23.2,构建1110ad01

最佳答案

问题是当你手动运行时,容器名称不再是flask,你可以使用docker network inform your_network看到。

您需要首先docker-compose rmflask释放名称flask,然后docker-compose run --service-ports --nameflaskflask .

最后,我不知道你如何使用pdb,但是你通常可以使用docker-compose execflask shdocker Attachcontainer_id > 获得交互式提示。

关于python - 使用 docker-compose run 时无法从 up 服务访问容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53776808/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com