在Mac OS X上使用dockerfile ADD和COPY命令

是否可以使用boot2docker在Mac OS X上的Dockerfile中使用ADDCOPY命令? 如果是这样,怎么样? 天真只是给No such file or directory

所以,我试了两件事:

  1. 让我的本地目录中的文件(与Dockerfile相同的目录)在我的Mac上。
  2. 将文件扫描到boot2docker-vm上的特定path,并使用该path的ADD。

既没有工作。

编辑:

普通香草Boot2Docker Mac OS X版本1.2干净安装。

Dockerfile:

 FROM centos ADD ./some.rpm /tmp/some.rpm RUN rpm -Uvh /tmp/some.rpm 

我已经尝试了与some.rpm相同的目录中的Dockerfile ,我已经尝试在boot2docker-vm映像中的/home/docker boot2docker-vm ,我试图将./some.rpm更改为/home/docker/some.rpm ./some.rpm /home/docker/some.rpm

要在dockerfile中使用“ADD”,需要两件事情:第一:包含结构的目录例如:./my_docker_dir/some.rpm

第二:my_docker_dir中的一个有效的Dockerfile(它必须被命名为“Dockerfile”)你的行:'ADD ./some.rpm /tmp/some.rpm'将起作用

有了这个准备,你可以用“docker build -t any / youwant”构build你的容器。

有关更多信息,请阅读https://docker.readthedocs.org/en/v0.6.3/commandline/command/build/

我相信你应该省略./ ,所以如果some.rpmsome.rpm在同一个文件夹中,请尝试

 ADD some.rpm /tmp/some.rpm 

如果文件位于Dockerfile旁边的文件夹中,可以这样做

 ADD files/some.rpm /tmp/some.rpm 

我做了一个简单的testing用例。

以下是我的设置的版本信息:

 $ boot2docker version Boot2Docker-cli version: v1.4.1 Git commit: 43241cb $ docker version Client version: 1.4.1 Client API version: 1.16 Go version (client): go1.4 Git commit (client): 5bc2ff8 OS/Arch (client): darwin/amd64 Server version: 1.4.1 Server API version: 1.16 Go version (server): go1.3.3 Git commit (server): 5bc2ff8 

这里是您可以复制面食到您的terminal的testing案例:

 date > foo.txt cat > Dockerfile <<EOF from centos ADD foo.txt /datefile.txt EOF docker build -t addtest . docker run -i -t addtest /bin/cat /datefile.txt 

它甚至可以工作,如果你使用/ tmp目录,虽然我build议反对它,因为这应该是在每次启动时消灭。