Download Docker删除下载的文件

Download Docker删除下载的文件,download,docker,boot2docker,Download,Docker,Boot2docker,我正在尝试设置一个Docker容器来测试Magento扩展。我希望通过这样一个Dockerfile来实现这一点: FROM php:5.4-apache WORKDIR /var/www/html ADD http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz /var/www/html # Other installation steps 但这是失败的: 2014/09/27 17:03:2

我正在尝试设置一个Docker容器来测试Magento扩展。我希望通过这样一个Dockerfile来实现这一点:

FROM php:5.4-apache
WORKDIR /var/www/html
ADD http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz /var/www/html
# Other installation steps
但这是失败的:

2014/09/27 17:03:25 lchown /mnt/sda1/var/lib/docker/aufs/mnt/d5ced8f20d760458093f2993ea25ffa9a644c93d5b134e793f820f53dfc2d70d/var/www/html/tmp: not a directory
我推测这与我在OS X上使用boot2docker有关(我记得不久前OS X与Docker存在一些文件系统共享问题),因此我再次尝试使用此Docker文件:

FROM php:5.4-apache
WORKDIR /var/www/html
# We should be able to use ADD to fetch a remote file, but
# something is causing that to fail (OS X Docker limitations, I guess?)
RUN ["/usr/bin/curl", "-O", "http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz"]
RUN ["/bin/tar", "-xzf", "magento-1.9.0.1.tar.gz"]
# Other installation steps
当我运行上面的代码时,curl执行得很好,并且没有错误地退出,但是生成的容器不包含下载的文件,因此下游tar命令失败

Step 2 : RUN ["/usr/bin/curl", "-O", "http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz"]
 ---> Running in 2695c5e95f77
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 21.9M  100 21.9M    0     0   817k      0  0:00:27  0:00:27 --:--:--  842k
 ---> bb716a60c4ef
Removing intermediate container 2695c5e95f77
Step 3 : RUN ["/bin/tar", "-xzf", "magento-1.9.0.1.tar.gz"]
 ---> Running in 95cc533947c1
tar (child): magento-1.9.0.1.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
/bin/tar: Child returned status 2
/bin/tar: Error is not recoverable: exiting now
2014/09/27 17:07:47 The command [/bin/tar -xzf magento-1.9.0.1.tar.gz] returned a non-zero code: 2
如果我检查中间容器,文件确实不在那里

$ docker run bb716a60c4ef /bin/sh -c 'pwd && ls -al'
/var/www/html
total 8
drwxr-xr-x 2 www-data www-data 4096 Sep 27 21:09 .
drwxr-xr-x 4 root     root     4096 Sep 23 11:09 ..

那么它到哪里去了?我如何设置Dockerfile以允许我下载和修改文件系统?

这里有一些事情需要注意。我将从第一个
Dockerfile
开始,因为该文件的修复相当简单:

FROM php:5.4-apache
WORKDIR /var/www/html
ADD http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz /var/www/html/
# Other installation steps
你抓到了吗?将
/
添加到目标的末尾会告诉
ADD
命令将其视为文件夹。有关复制规则,请参见第三个要点

第二个
Dockerfile
对我来说有点神秘。但我怀疑这与父映像设置
/var/www/html
有关,因为它是一个可以跳过层版本控制的卷。看