假设我编写了一个名为
1. 进入运行Flask应用程序的容器的控制台,并使用
第一种选项有点费力,而第二种选项有点“肮脏”。有没有比提到的两种选择更合适的选择?
docker-compose.dev.yml
的文件,用于使用Docker设置Flask项目(Web应用程序)的开发环境。在docker-compose.dev.yml
中,我设置了两个服务,一个用于数据库,另一个在调试模式下运行Flask应用程序(这使我能够进行热更改而无需重新创建/重启容器)。这使得开发团队中的每个人都可以非常轻松地使用相同的开发环境。但是,存在一个问题:显然,在开发应用程序时需要安装库,并将它们列在requirements.txt
文件中(在Python的情况下)。为此,我只看到在使用Docker开发环境时有两种选择:1. 进入运行Flask应用程序的容器的控制台,并使用
pip install ...
和pip freeze > requirements.txt
命令。
2. 手动将依赖项编写到requirements.txt
文件中并重新构建容器。第一种选项有点费力,而第二种选项有点“肮脏”。有没有比提到的两种选择更合适的选择?
setup.cfg
和requirements.txt
文件与应用程序的其余部分一起跟踪存储在源代码控制中? - David Mazerequirements_dev.txt
,并在其第一行添加:-r requirement.txt
。然而,更好的解决方案是使用依赖/包管理工具,如poetry
或pip-tools
- 就我个人而言,我更喜欢pip-tools
。另一方面,poetry
有一种更直接的方法来分离生产和开发/测试依赖。 - rocksteady