【发布时间】:2021-04-01 19:43:55
【问题描述】:
我正在寻找有关设置包含多个包(包括烧瓶项目)的 python 存储库的建议。这可能与 python/flask 问题一样是 docker 问题,所以我愿意接受任何可以在这里提供帮助的模式。
我的应用程序结构是这样的(注意:这看起来像命名空间打包,但我配置了setup.py,所以每个包都是它自己的命名空间):
my_app
|--setup.py
|--src/
|--my_flask_app/
|--__init__.py
|--static/
|--templates/
|--some_other_module/
|--__init__.py
我在开发方面遇到了这种模式的问题。基本上我知道我可以用Flask(__name__, root_path='/app/src/my_flask_app)' 覆盖root_path,让它找到合适的源目录。但是,这需要根据我是在 Docker 映像中还是在本地运行它来更改。
例如,如果我打印在本地运行的app.root_path(不修改它),我会看到/Users/username/Documents/my_app/src/my_flask_app。如果我在 docker 中运行它,它必须是 /app/src/my_flask_app 才能正常工作(默认为 /app/my_flask_app 没有修改,这是坏的)。
我的主要问题:是否有一些简单的方法来处理这个问题,构建项目/dockerfile 来实现它,这样我就不必在本地和 docker run 实例之间不断更改它?我应该改用Flask(instance_path=) 吗?
【问题讨论】: