【发布时间】:2021-05-07 06:34:49
【问题描述】:
无法打开文件'/web/manage.py':[Errno 2] 没有这样的文件或目录 以代码 2 退出
注意:已尝试发布的所有类似问题解决方案,但均无效。
无论我做什么,都无法让 http://localhost/5000 工作。即使上述错误通过从 docker-container 中删除卷和命令而消失。
下面是docker-compose.yml
services:
web:
build: ./web
command: python /web/manage.py runserver 0.0.0.0:8000
volumes:
- './users:/usr/src/app'
ports:
- 5000:5000
env_file:
- ./.env.dev
以下是 Dockerfile:
# pull official base image
FROM python:3.9.5-slim-buster
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
# copy project
COPY . /usr/src/app/
下面是 manage.py:
from flask.cli import FlaskGroup
from project import app
cli = FlaskGroup(app)
if __name__ == "__main__":
cli()
下面是 init.py:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def hello_world():
return jsonify(hello="world")
结构如下:
当我运行这个命令时,出现了红色标记的那些:docker-compose build enter image description here
【问题讨论】:
-
您不需要在 dockerfile 中公开端口,例如
EXPOSE 5000。我也有点困惑8000这个端口你的服务器不是运行在8000上而不是5000上吗? -
是
http://localhost:5000/,而不是http://localhost/5000(等于http://localhost:80/5000)。
标签: python postgresql docker flask flask-sqlalchemy