我pipenv用于我的django应用程序。$ mkdir djangoapp && cd djangoapp$ pipenv install django==2.1$ pipenv shell(djangoapp) $ django-admin startproject example_project .(djangoapp) $ python manage.py runserver现在我正在转移到 docker 环境。根据我的理解,pipenv只在一个virtualenv您不需要容器内的虚拟环境,docket 容器本身就是一个虚拟环境。后来经过许多 Dockerfile 'si 找到--system了在系统中安装的选项。例如,我发现以下内容:https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/COPY ./Pipfile /usr/src/app/PipfileRUN pipenv install --skip-lock --system --devhttps://hub.docker.com/r/kennethreitz/pipenv/dockerfile# -- Install dependencies:ONBUILD RUN set -ex && pipenv install --deploy --systemhttps://wsvincent.com/beginners-guide-to-docker/# Set work directoryWORKDIR /code# Copy PipfileCOPY Pipfile /code# Install dependenciesRUN pip install pipenvRUN pipenv install --system所以--system只有足够的或--deploy --system更好的方法。这--skip-lock --system --dev又是不同的。那么有人可以指导如何将我的环境恢复到我的 Docker 中
1 回答
绝地无双
TA贡献1946条经验 获得超4个赞
典型的 Docker 部署将涉及拥有一个requirements.txt(它是一个文件,您可以在其中存储 pip 依赖项,包括 Django 本身)文件,然后在您的文件中Dockerfile执行以下操作:
FROM python:3.7 # or whatever version you need
ADD requirements.txt /code/
WORKDIR /code
# install your Python dependencies
RUN pip install -r requirements.txt
# run Django
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000"]
您根本不需要pipenv这里,因为您不再像您所说的那样拥有虚拟环境。
更好的是你可以在一个docker-compose.yml文件中配置很多这样的东西,然后docker-compose用来运行和管理你的服务,而不仅仅是 Django。
Docker有一个很好的关于使用它dockerising Django 的教程。如果您不确定Dockerfile
本身发生了什么,请查看手册。
添加回答
举报
0/150
提交
取消