Dockerfile构建错误并写入另一个文件夹

时间:2016-11-09 18:26:15

标签: docker dockerfile

我制作了像这样的dockerfile

FROM hyeshik/tailseeker:latest
RUN rm /opt/tailseeker/conf/defaults.conf
COPY /Users/Downloads/defaults.conf /opt/tailseeker/conf/
COPY /Users/Downloads/level2/* /opt/tailseeker/refdb/level2/
COPY /Users/Downloads/level3/* /opt/tailseeker/refdb/level3/

我的用户/下载/文件夹还有其他名为input

的文件夹

我跑的时候

docker build -f /Users/Downloads/Dockerfile /Users/Downloads/

我收到错误说

Sending build context to Docker daemon 126.8 GB
Error response from daemon: Error processing tar file(exit status 1): write /input/Logs/Log.00.xml: no space left on device

这里有一个奇怪的事情是它为什么要写入输入文件夹?另一个是它为什么抱怨设备上没有空间。我有1TB磁盘,只使用了210GB。我还使用了qemu-img并调整了我的Docker.qcow2。这是我的Docker.qcow2

的信息
image:/Users/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
file format: qcow2
virtual size: 214G (229780750336 bytes)
disk size: 60G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
    refcount bits: 16
    corrupt: false

有人可以帮助我使用上面的dockerfile将我/ Users / Downloads文件夹中的内容复制到docker镜像中吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

build首先从上下文目录(在您的情况下为/Users/Downloads/)创建tarball并将该tarball发送到服务器。 tarball是在tmp目录中创建的,这可能是你在尝试构建时空间不足的原因。

当您使用大型数据集时,建议的方法是使用卷。您可以使用绑定装入卷来装载主机中的文件。

如果您尝试添加的文件数量不大,则可能需要使用.dockerignore忽略/Users/Downloads下的其他文件。

您还可以使用$DOCKER_TMPDIR

启动具有备用临时目录的docker守护程序