使用Dockerfile写入docker容器

时间:2018-02-10 16:24:52

标签: docker docker-container

我有像这样的dockerfile

FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y software-properties-common vim
RUN add-apt-repository ppa:jonathonf/python-3.6
RUN apt-get update
RUN mkdir /app
WORKDIR /app
ADD test_write.py /app/    
RUN chmod 777 test_write.py
RUN python3.6 test_write.py
RUN cat media/test.txt

test_write.py脚本创建test.txt文件并将内容写入该文件。 问题是,当我运行docker build时,一切运行正常,但是当我登录到Docker容器后,我看不到脚本创建的test.txt文件。我做错了吗?

这是test_write.py脚本的输出。我不能在这里编写整个dockerfile ..所以只需输出test_write.py脚本命令的输出。

```

Removing intermediate container dec90eb251e5
Step 22/24 : RUN python3.6 test_write.py
 ---> Running in 96b8b7a9f6eb
Running ....
 ---> 555e4e86be11
Removing intermediate container 96b8b7a9f6eb
Step 23/24 : RUN cat media/test.txt
 ---> Running in 6ffd8a8e63e3
Written to file using docker ---> f502a63cd760
Removing intermediate container 6ffd8a8e63e3

```

2 个答案:

答案 0 :(得分:0)

我复制/粘贴你的Dockerfile并收到以下错误。

Step 10/11 : RUN python3.6 test_write.py
 ---> Running in 4ef189b481ea
/bin/sh: 1: python3.6: not found
The command '/bin/sh -c python3.6 test_write.py' returned a non-zero code: 127

不确定你是如何按照书面工作的。也许尝试类似的事情:

FROM python:3.6-stretch
RUN mkdir /app
WORKDIR /app
ADD test_write.py /app/    
RUN python test_write.py
RUN cat media/test.txt

或者,注释掉Dockerfile的最后两行,然后启动它并手动运行python脚本以查看它是否有效。也许它将输出文件写入不同的位置或什么的。

答案 1 :(得分:0)

抱歉,这是我的错误......在我的码头工作室中,我正在使用像这样的卷

volumes:
  - .:/app

运行'docker-compose up'之后,app目录包含docer中的本地目录结构 很抱歉发布了无效的问题