python - Dockerfile包含一个写入输出文件的python脚本,但未在容器上创建输出文件

标签 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 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。它只是没有被创建。有什么不见了?我该如何解决?

最佳答案

  • 将您的text_file更改为/log/output.txt
  • 构建镜像未运行CMD。
  • 构建镜像后,运行容器,执行
    docker run -it --rm -v $(pwd)/log:/log imagename
    

  • 您的脚本会写在容器内,然后直接退出。因此,您将不会在当前目录中看到它。解决此问题的方法是将主机目录装载到容器中,并让脚本在其中写入内容,以便数据可以持久化。

    关于python - Dockerfile包含一个写入输出文件的python脚本,但未在容器上创建输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44769902/

    相关文章:

    python - 在 ipywidgets 中设置框的背景颜色

    python - 在 Python 3 中调用 gnome 终端子进程时出现 "Failed to execute child process (No such file or directory)"

    python - pandas 长到宽的多列 reshape

    c# - Process.Start 不会将消息重定向到 docker 托管的父上下文吗?

    Python urllib2 恢复下载在网络重新连接时不起作用

    docker - 没有此类属性:类:Script4的ToInputStream

    linux - Docker容器中挂载/dev/sda1到/etc/hosts是什么意思

    asp.net - 复制 。 .用于 ASP.NET 的 Dockerfile 中的命令

    docker - `make`命令的docker镜像运行错误

    docker - 如何在 docker 构建期间指定和使用证书文件