使用 Postgres、Gunicorn 和 Nginx 对 Django 进行 Docker 化
Dockerizing Django with Postgres, Gunicorn and Nginx
我是 DevOps 世界的新手,我完全迷失了方向。
好吧,我想用 Postgres 数据库以及 Gunicorn 和 Nginx 制作一个 Django 应用程序,但我想把所有东西都 dockerize。
我知道 Django 有 venv,这个用于开发的虚拟环境,所以我想知道我是应该在我的本地机器上使用它,还是只配置 Gunicorn 和 Nginx,并在开发和生产中使用完全相同的图像和环境,所以这也意味着只有一个 .env 文件。
这是一个好的解决方案吗?因为我不想在生产环境中使用 venv。
虚拟环境可帮助您将不同项目所需的依赖项分开。因此,当您在具有不同依赖项的单个系统上有多个项目时,使用 venv 是有意义的。
在使用 docker 时,您尝试将一个容器限制在一个项目中。虽然在 docker 容器内创建虚拟环境在技术上是可行的,但这确实不是一件好事。使用 docker,您的所有项目已经有了完全不同的 "environment"。
此外,请牢记您的生产点,始终建议使用 docker.
等容器
您可以让多个容器为您的项目协同工作,例如 postgres nginx 和 web_app,使用一个或不同的 .envs,这完全取决于您希望在 docker- 中编排的方式compose.yml
我是 DevOps 世界的新手,我完全迷失了方向。
好吧,我想用 Postgres 数据库以及 Gunicorn 和 Nginx 制作一个 Django 应用程序,但我想把所有东西都 dockerize。
我知道 Django 有 venv,这个用于开发的虚拟环境,所以我想知道我是应该在我的本地机器上使用它,还是只配置 Gunicorn 和 Nginx,并在开发和生产中使用完全相同的图像和环境,所以这也意味着只有一个 .env 文件。
这是一个好的解决方案吗?因为我不想在生产环境中使用 venv。
虚拟环境可帮助您将不同项目所需的依赖项分开。因此,当您在具有不同依赖项的单个系统上有多个项目时,使用 venv 是有意义的。
在使用 docker 时,您尝试将一个容器限制在一个项目中。虽然在 docker 容器内创建虚拟环境在技术上是可行的,但这确实不是一件好事。使用 docker,您的所有项目已经有了完全不同的 "environment"。
此外,请牢记您的生产点,始终建议使用 docker.
等容器您可以让多个容器为您的项目协同工作,例如 postgres nginx 和 web_app,使用一个或不同的 .envs,这完全取决于您希望在 docker- 中编排的方式compose.yml