Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Docker-我们需要在Dockerfile中包含RUN命令吗_Python_Docker - Fatal编程技术网

Python Docker-我们需要在Dockerfile中包含RUN命令吗

Python Docker-我们需要在Dockerfile中包含RUN命令吗,python,docker,Python,Docker,我有一个python代码,要将其转换为docker图像,我可以使用以下命令: sudo docker build -t customdocker . 这会将python代码转换为docker图像。要转换它,我使用Dockerfile和以下命令: FROM python:3 ADD my_script.py / ADD user.conf /srv/config/conf.d/ RUN pip3 install <some-package> CMD [ "python3",

我有一个python代码,要将其转换为docker图像,我可以使用以下命令:

sudo docker build -t customdocker .
这会将python代码转换为docker图像。要转换它,我使用Dockerfile和以下命令:

FROM python:3

ADD my_script.py /

ADD user.conf /srv/config/conf.d/

RUN pip3 install <some-package>

CMD [ "python3", "./my_script.py" ]
来自python:3的

添加my_script.py/
添加user.conf/srv/config/conf.d/
运行pip3安装
CMD[“python3”,“/my_script.py”]
在这里,我们有
RUN
命令来安装所需的软件包。假设我们出于某种原因删除了图像,并希望重新构建它,那么我们是否可以跳过此
运行
步骤以节省一些时间,因为我认为这已安装

在我的代码中,我还使用了另一个目录中的文件
user.conf
。因此,我在DOckerfile中包含了这个文件,并在当前目录中保存了它的一个副本。docker中是否有一种方法可以定义我的工作目录,以便docker image在这些目录中搜索文件


谢谢

是的,如果要在删除后再次生成docker映像,则无法删除docker文件中的RUN或其他语句

您在dockerfile中使用命令WORKDIR,但其作用域将在docker映像中,即当您从映像创建容器时,WORKDIR将设置为WORKDIR中指定的值

例如:

WORKDIR  /srv/config/conf.d/
此/srv/config/conf.d/将设置为workingdir,但在生成dockerfile时,您必须在dockerfile中使用以下命令,以便将该文件复制到指定位置

ADD user.conf /srv/config/conf.d/

回答第一个问题:docker映像包含与python环境相关的所有内容,包括您安装的软件包。删除映像时,包也会从映像中删除。因此,不,您不能跳过该步骤

现在转到第二个问题,您可以通过以下方式在启动容器时绑定目录:

docker run -v /directory-you-want-to-mount:/src/config/ customdocker
您还可以使用
-w
标志设置工作目录

docker  run -w /path/to/dir/ -i -t  customdocker

如果一个python代码从另一个python代码导入模块,如何在docker中处理此问题。如果我们为这两个映像创建docker,则运行该模块时会出现错误not found。