【发布时间】:2018-11-21 04:49:21
【问题描述】:
我一直在调查相关问题,但找不到解决此问题的正确方法。我所有的路线都在本地工作。但是,当我运行 docker-compose up 来容器化我的应用程序时,我的应用程序将启动,但除根“hello world”路由之外的所有路由都返回 404 错误。
我尝试在app.config 中设置“SERVER_NAME”,并像其他帖子建议的那样在我的路由 URL 上附加一个额外的“/”,但无济于事。
关于如何解决此问题的任何建议?
app/app.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)
Dockerfile:
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
【问题讨论】:
-
我注意到你有一个额外的“。”在主机。应该是
host="0.0.0.0",不确定这是否会导致任何问题。 -
已编辑。这是一个错字,但它不能解决错误。
-
您是如何验证 /test 路由不起作用的?能否提供 Docker 日志?
-
确保您发送 POST 请求以验证您的 /test 路由是否有效。
标签: python python-3.x docker flask docker-compose