DevOps 简单设置

DevOps Simple Setup

我希望开始为 Django Web 应用程序创建适当的隔离环境。我的第一个倾向是使用 Docker。此外,通常建议将 virtualenv 与任何 python 项目一起使用以隔离依赖项。

如果我通过 Docker 图像隔离项目,是否仍然需要 virtualenv

如果每个 Python / Django 都将生活在它自己的容器中,则不会。

如果您的 Docker 容器寿命相对较长或您的项目依赖项发生变化,使用 Python 虚拟环境仍然有价值。除了(相对)隔离代码库与其他项目和底层系统(尤其是处于给定状态的项目)的依赖关系之外,它还允许在给定时间以某种方式表示需求状态。

例如,假设您今天为您的 Django 应用制作了一个 Docker 图像,并在接下来的三周内使用它。您是否看到您的 requirements.txt 文件不时被修改?你能想象一个场景,在这个场景中,你推出了一个随着环境变化而来的补丁吗?

从 Python 3.3 开始,virtual-env 是标准库,这意味着它 非常 使用起来很便宜,所以我会继续使用它,以防万一Docker 容器并不像您原先计划的那样是一次性的。换句话说,即使您的 Docker-image 管道非常成熟并且 Python 的版本和依赖项是 "pre-baked",它也是一个唾手可得的成果,虽然不是明确必要的,但还是值得的坚持最佳实践。