是否可以使用boot2docker在Mac OS X上的Dockerfile中使用ADD
和COPY
命令?如果是这样,怎么样?天真就给了No such file or directory
。
所以,我尝试了两件事:
都没有工作。
编辑:
Plain vanilla Boot2Docker Mac OS X 1.2版全新安装。
Dockerfile:
FROM centos
ADD ./some.rpm /tmp/some.rpm
RUN rpm -Uvh /tmp/some.rpm
我已尝试将some.rpm
放在与Dockerfile
相同的目录中,我已尝试在/home/docker
图片的boot2docker-vm
中使用./some.rpm
,我尝试过将/home/docker/some.rpm
更改为{{1}}等等。
答案 0 :(得分:0)
要在dockerfile中使用“ADD”,您需要做两件事: 第一:具有您的结构的目录 例如: ./my_docker_dir/some.rpm
第二:my_docker_dir中的有效Dockerfile(必须命名为'Dockerfile') 你的行:'ADD ./some.rpm /tmp/some.rpm'将起作用
准备好后,您可以使用'docker build -t whatever / youwant'来构建容器。
有关详细信息,请参阅https://docker.readthedocs.org/en/v0.6.3/commandline/command/build/
答案 1 :(得分:0)
我相信你应该省略./
,所以如果some.rpm
与Dockerfile在同一个文件夹中,请尝试
ADD some.rpm /tmp/some.rpm
如果文件位于Dockerfile旁边名为files
的子文件夹中,则可以执行
ADD files/some.rpm /tmp/some.rpm
答案 2 :(得分:0)
我做了一个简单的测试用例。
以下是我的设置的版本信息:
$ 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
以下是您可以将面食复制到终端的测试用例:
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目录它甚至可以工作,虽然我建议反对它,因为它应该在每次启动时被清除。