Dockerfile:在构建期间创建和挂载磁盘映像

Flo*_*ian 5 mount docker dockerfile

我正在尝试在 Dockerfile 构建过程中构建和挂载自定义磁盘映像:

FROM ubuntu:16.04
RUN dd if=/dev/zero of=foo.img count=500 bs=1M
RUN mkfs.ext4 foo.img
RUN mkdir -p /media/ext4disk
RUN mount -t ext4 foo.img /media/ext4disk
Run Code Online (Sandbox Code Playgroud)

运行docker build,我在最后一个命令上收到以下错误消息:mount failed: Unknown error -1.

有什么办法可以实现我想做的事吗?

Rob*_*ert 5

您将需要具有的--privileged--cap-add功能docker run,但docker build. 因此,从当前的 Docker 版本开始,您不能.

看到这个评论:

大量 docker 用户希望能够在构建命令中使用 --cap-add 或 --privileged 来模拟运行命令中的内容。

这就是为什么这张票已经开放了 3 年,尽管维护人员对在这个特定实例中为用户提供他们想要的东西不感兴趣,但人们不断地参与其中。

作为替代方案,您可以将该RUN命令移动到应在容器启动时运行的脚本(并添加提到的--privileged标志,或--cap-add=SYS_ADMIN