在Mac OS X上使用dockerfile ADD和COPY命令
是否可以使用boot2docker在Mac OS X上的Dockerfile中使用ADD
和COPY
命令? 如果是这样,怎么样? 天真只是给No such file or directory
。
所以,我试了两件事:
- 让我的本地目录中的文件(与Dockerfile相同的目录)在我的Mac上。
- 将文件扫描到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.rpm
与some.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议反对它,因为这应该是在每次启动时消灭。