我关注了 Pycharm 的这篇博文,并尝试对我的 Flask 应用程序进行 docker 化。我的应用程序在本地 venv 上正确运行。但是当我docker-compose up在终端中使用时。我收到此错误:
FileNotFoundError:[Errno 2] 无法加载配置文件(没有这样的文件或目录):'/CarrotApp/project/instance/flask.cfg'
我从博客文章中复制了与 docker 相关的文件,只做了很少的更改:
Dockerfile:
FROM python:3.6
EXPOSE 5000
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY . /app
CMD python run.py
码头工人-compose.yml
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
docker-compose.dev.yml
version: '2'
services:
web:
volumes:
- .:/app
我的应用程序结构:
- 项目
- /app(由 Dockerfile 创建)
- /实例
flask.cfg- /venv
__init__.pyrun.py- 要求.txt
Dockerfile和yml文件
run.py:
from project import app
if __name__ == "__main__":
app.run(host='0.0.0.0')
我的烧瓶配置__init__.py:
app = Flask(__name__, instance_relative_config=True,
instance_path='/CarrotApp/project/instance')
app.config.from_pyfile('flask.cfg')
我不得不为实例使用绝对路径,因为 Flask 只允许这样。
我是 Docker 新手,不知道哪里出了问题。
编辑:根据@andre_vieira 的回答更改了 yml 文件。添加了完整错误消息的屏幕截图