Django 和 docker:我们应该使用 python virtualenv
Django and docker: Should we use python virtualenv
我正在考虑为 django 使用 docker。
因为这个 docker 图像将专用于特定的 django 项目是否可以只 pip 安装 docker 中的所有内容而不是创建 virtualenv 然后安装所有必需的 django 和相关包使用 pip
那么,如果想要坚持 docker 用于 Django 项目,最好的方法和安全的方法是什么。
Docker 容器提供已经隔离的环境,这与 virtualenv 的目标相似。因此,如果它在 Docker 容器中只有 1 个应用程序 运行,则可以在没有 virtualenv 带来的另一层的情况下使用它。就个人而言,我不记得在容器中看到过与 virtualenv 一起使用的 Django 应用程序。
你说得对,你不需要 django 容器内的虚拟环境。
如果您总是使用 pip 并将要求存储在 requirements.txt 中,您可以使用它来初始化虚拟环境以进行开发而无需 docker 以及设置 docker容器:
要减小容器的大小,请在安装后删除 pip 缓存:
FROM python:3.6.7-alpine3.8
...
RUN pip3.6 install -U pip setuptools \
&& pip3.6 install -r requirements.txt \
&& pip3.6 install gunicorn \. # or uwsgi or whatever
&& rm -rf /root/.cache
我正在考虑为 django 使用 docker。
因为这个 docker 图像将专用于特定的 django 项目是否可以只 pip 安装 docker 中的所有内容而不是创建 virtualenv 然后安装所有必需的 django 和相关包使用 pip
那么,如果想要坚持 docker 用于 Django 项目,最好的方法和安全的方法是什么。
Docker 容器提供已经隔离的环境,这与 virtualenv 的目标相似。因此,如果它在 Docker 容器中只有 1 个应用程序 运行,则可以在没有 virtualenv 带来的另一层的情况下使用它。就个人而言,我不记得在容器中看到过与 virtualenv 一起使用的 Django 应用程序。
你说得对,你不需要 django 容器内的虚拟环境。
如果您总是使用 pip 并将要求存储在 requirements.txt 中,您可以使用它来初始化虚拟环境以进行开发而无需 docker 以及设置 docker容器:
要减小容器的大小,请在安装后删除 pip 缓存:
FROM python:3.6.7-alpine3.8
...
RUN pip3.6 install -U pip setuptools \
&& pip3.6 install -r requirements.txt \
&& pip3.6 install gunicorn \. # or uwsgi or whatever
&& rm -rf /root/.cache