Python Docker在Dockerfile中创建卷并在其上编译应用程序

Python Docker在Dockerfile中创建卷并在其上编译应用程序,python,docker,dockerfile,docker-volume,Python,Docker,Dockerfile,Docker Volume,在我的docker django项目中,出于读/写目的,我需要在DockerRile中创建一个卷,并在其上安装/运行应用程序 我发现了这篇文章:但我真的不太了解它 这里是我的Dockerfile: FROM python:3.6-alpine EXPOSE 8000 RUN apk update RUN apk add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev RUN apk add postgresql-dev gcc

在我的docker django项目中,出于读/写目的,我需要在DockerRile中创建一个卷,并在其上安装/运行应用程序

我发现了这篇文章:但我真的不太了解它

这里是我的Dockerfile:

FROM python:3.6-alpine
EXPOSE 8000
RUN apk update
RUN apk add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev
RUN apk add postgresql-dev gcc python3-dev musl-dev
RUN mkdir /Code

VOLUME /var/lib/cathstudio/data
WORKDIR /Code

COPY ./requirements.txt .

RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENV PYTHONUNBUFFERED 1

COPY . /Code/

ENTRYPOINT python /Code/core/manage.py runserver 0.0.0.0:8000
在我的原始文件中,我添加了
VOLUME/var/lib/cathstudio/data
指令,但在这之后,我如何告诉我的其余代码将这些卷用于WORKDIR、安装requirements.txt、复制代码并运行应用程序

我不知道在构建后如何在带有-v指令的RUN语句中指定它,我将直接在dockerfile中集成卷的创建和管理


因此,对于除pip之外的任何事情,请提前表示非常感谢,您可以指定workdir一次:

WORKDIR /var/lib/cathstudio/data
对于pip,使用
-t
-target

pip install -t /var/lib/cathstudio/data
-t、 --目标

将软件包安装到中。默认情况下,这不会替换中的现有文件/文件夹。使用--upgrade替换现有的
使用新版本打包


因此,运行pip安装-t/var/lib/cathstudio/data-r requirements.txt是否正确?谢谢,别忘了将PYTHONPATH设置为
/var/lib/cathstudio/data
,这样代码就知道在DockerFIle中的何处查找已安装的模块了?我想为许多人分发我的应用程序,我会自动在docker文件中添加ENV和ARG,就像这样
ENV PYTHONPATH/var/lib/cathstudio/data
,但我还必须修改ENTRYPOINT COPY或其他带有新路径/var/lib/cathstudio/data的命令?您显示的docker文件看起来正确,这是使用Docker的正常方式。为什么你认为你需要大量的代码?
Install packages into <dir>. By default this will not replace existing files/folders in <dir>. Use --upgrade to replace existing