我想使用docker构建一个应用程序,并使用构建挂载将构建的文件返回到主机,但是我无法获取docker映像以能够写入已挂载的目录。这是一个再现问题的最小Dockerfile
FROM alpine:3.7
WORKDIR /app
RUN touch /app/build/test.txt
我用来运行此构建的命令是docker build --rm -v "$(pwd)/build:/app/build" .
,我得到的错误如下所示:
$ docker build --rm -v "$(pwd)/build:/app/build" .
Sending build context to Docker daemon 81.29 MB
Step 1/3 : FROM alpine:3.7
---> 34ea7509dcad
Step 2/3 : WORKDIR /app
---> b0c4ac704af7
Removing intermediate container 234ef41fd395
Step 3/3 : RUN touch /app/build/test.txt
---> Running in e095ed8b29d5
touch: /app/build/test.txt: Read-only file system
我在带有Docker v1.13.1的Fedora 27上运行。我的机器上有一个docker
组,允许运行没有sudo
的docker命令,如here
我尝试了以下操作但未成功:
sudo
调用docker命令z
)的说明,在卷中添加Z
/ -v "$(pwd)/build:/app/build:Z"
挂载选项rw
挂载选项(-v "$(pwd)/build:/app/build:rw"
)docker build
目录的情况下调用build
答案 0 :(得分:0)
如评论中所指出,docker build
不支持-v
选项。我尝试使用Dockerfile和docker build
执行的操作应改为使用docker run
命令:
docker run -i -v $(pwd)/build:/app/build alpine:3.7 << EOF
touch /app/build/test.txt
... other commands ...
EOF