gpt4 book ai didi

python - Flask with docker 在除 root 之外的所有路由上返回 404

转载 作者:行者123 更新时间:2023-12-02 18:07:27 24 4
gpt4 key购买 nike

我一直在调查相关问题,但找不到解决此问题的正确方法。我所有的路线都在本地工作。但是,当我运行 docker-compose up 来容器化我的应用程序时,我的应用程序将启动,但除根“hello world”路由之外的所有路由都返回 404 错误。

我曾尝试在 app.config 中设置“SERVER_NAME”,并像其他帖子所建议的那样在我的路由 url 上附加一个额外的“/”,但无济于事。

关于如何解决这个问题有什么建议吗?

应用程序/应用程序.py

@app.route("/")                        # <-- this route works
def hello_world():
return "Hello, world!"

@app.route("/test", methods=["POST"]) # <-- this one doesn't
def test():
return "Test POST route"

if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)

docker 文件:

FROM tiangolo/uwsgi-nginx-flask:python3.6

COPY requirements.txt /

WORKDIR /

RUN pip install -r ./requirements.txt --no-cache-dir

COPY app/ /app/

WORKDIR /app

ENV FLASK_APP=app.py
ENV FLASK_ENV=production
CMD flask db upgrade && python app.py

docker-compose.yml

version: '3'
services:
web:
build: .
ports:
- "5000:5000"
env_file:
- .env

最佳答案

需要在docker-compose而不是dockerfile中挂载源代码文件夹,否则每次代码变动都需要重新构建镜像。在 docker compose 中,您可以使用 volumes 属性来执行此操作。您可以在此处阅读更多信息 https://docs.docker.com/compose/compose-file/

例子


version: '3'
services:
web:
build: .
ports:
- "5000:5000"
env_file:
- .env
volumes:
- ./app:/app

关于python - Flask with docker 在除 root 之外的所有路由上返回 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405430/

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