Dockerfile包含写入输出文件的python脚本,但未在容器上创建输出文件
这是我的第一个问题,所以要温柔:) 我有一个Dockerfile,如下所示:Dockerfile包含写入输出文件的python脚本,但未在容器上创建输出文件,python,docker,dockerfile,devops,Python,Docker,Dockerfile,Devops,这是我的第一个问题,所以要温柔:) 我有一个Dockerfile,如下所示: FROM centos:latest Maintainer Liz Miller LABEL description="Image Built with Dockerfile." RUN yum -y update RUN yum -y install python-setuptools RUN easy_install supervisor RUN mkdir -p /var/log/supervisor RUN y
FROM centos:latest
Maintainer Liz Miller
LABEL description="Image Built with Dockerfile."
RUN yum -y update
RUN yum -y install python-setuptools
RUN easy_install supervisor
RUN mkdir -p /var/log/supervisor
RUN yum -y install which
RUN yum -y install git
RUN yum install python
COPY myscript.py myscript.py
CMD ["python", "/myscript.py"]
而myscript.py python脚本是:
text_file = open('output.txt', 'w')
text_file.write('Hello World')
text_file.close()
当我从这个Dockerfile构建映像时,映像是用脚本构建并运行的,我看不到output.txt。它只是没有被创造出来。少了什么?我如何解决这个问题
/log/output.txt
docker run -it --rm -v $(pwd)/log:/log imagename
您的脚本在容器中写入,然后按正确的方式退出。因此,您将无法在当前目录中看到它。解决这个问题的方法是将一个主机目录装入容器,并让脚本在其中写入,这样数据就可以持久化。因此我设法解决了这个问题。 CMD确实不运行命令,但run运行 我已将命令行更改为这一行: 运行python myscript.py
这就解决了我的问题,我能够在构建后在容器上看到python脚本的输出文件。Hi-Noam,感谢您的回复。如果构建没有运行CMD,那么我应该如何运行脚本?您提到了使用输出文件运行容器,但是脚本呢?在尝试了这么多之后,这个简单的解决方案终于对我起作用了,我只是想说声谢谢