gpt4 book ai didi

docker-compose 成功但服务器在请求时不响应

转载 作者:行者123 更新时间:2023-12-04 15:57:39 25 4
gpt4 key购买 nike

我使用 Flask 框架构建了一个 RESTful API 网络服务,Redis 作为主数据库,MongoDB 作为备份存储, Celery 作为任务队列在后台将数据存入MongoDB

然后我使用 docker-compose 对我的应用程序进行 docker 化。这是我的 docker-compose.yml:

version: '3'

services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
redis:
image: "redis:alpine"
ports:
- "6379:6379"
mongo:
image: "mongo:3.6.5"
ports:
- "27017:27017"
environment:
MONGO_INITDB_DATABASE: syncapp

这是我的 Dockerfile:

# base image
FROM python:3.5-alpine
MAINTAINER xhoix <145giakhang@gmail.com>

# copy just the requirements.txt first to leverage Docker cache
# install all dependencies for Python app
COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

# install dependencies in requirements.txt
RUN pip install -r requirements.txt

# copy all content to work directory /app
COPY . /app

# specify the port number the container should expose
EXPOSE 5000

# run the application
CMD ["python", "/app/app.py"]

运行命令 docker-compose up 后,应用服务器、Redis 和 Mongo 服务器运行良好。但是当我使用 Postmancurl 调用 API 时,例如 http://127.0.0.1:5000/sync/api/v1.0/users ,应该返回所有用户的JSON格式,但结果是Could not get any response: There was an error connecting to http://127.0.0.1:5000/sync/api/v1.0/用户。

我不知道为什么会这样。感谢您的帮助和建议!

最佳答案

我找到了问题的原因:

经过一个小时的debug,发现只要把app host改成0.0.0.0就可以了.也许在映射端口时,docker 默认值为 0.0.0.0,因为当我运行命令 docker-compose ps 时,每个容器的 PORTS 列的格式为 0.0.0.0:<port> -> <port> .我不知道这是不是问题的原因,但我做到了,问题就解决了

关于docker-compose 成功但服务器在请求时不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51258548/

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