Macos 在Mac OS X上使用dockerfile添加和复制命令
是否可以使用boot2docker在Mac OS X上的Dockerfile中使用Macos 在Mac OS X上使用dockerfile添加和复制命令,macos,docker,Macos,Docker,是否可以使用boot2docker在Mac OS X上的Dockerfile中使用添加和复制命令?如果是,怎么做?naive只提供了没有这样的文件或目录 所以,我尝试了两件事: 在Mac上的本地目录(与Dockerfile相同的目录)中保存该文件 将文件插入boot2docker vm上的特定路径,并从该路径使用ADD 两者都不起作用 编辑: 普通Boot2Docker Mac OS X 1.2版干净安装 Dockerfile: FROM centos ADD ./some.rpm /tmp/s
添加
和复制
命令?如果是,怎么做?naive只提供了没有这样的文件或目录
所以,我尝试了两件事:
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
,等等。在Dockerfile中使用“ADD”需要两件事:
第一:一个目录和你的结构
例如:
/my\u docker\u dir/some.rpm
第二:my_docker_dir中的有效Dockerfile(必须命名为“Dockerfile”)
您的行:“ADD./some.rpm/tmp/some.rpm”将起作用
有了这些准备,您可以使用“docker build-t which/youwant”构建您的容器
有关详细信息,请阅读我认为您应该省略
/
,因此如果某些.rpm
与Dockerfile位于同一文件夹中,请尝试
ADD some.rpm /tmp/some.rpm
如果文件位于Dockerfile旁边名为files
的子文件夹中,则可以执行以下操作:
ADD files/some.rpm /tmp/some.rpm
我做了一个简单的测试用例 以下是我的安装程序的版本信息:
$ 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
date>foo.txt
cat>Dockerfile你能给我们更多关于你的Dockerfile和你的设置的信息吗?@Regan:已添加。谢谢。这里的两个“答案”都忽略了这一点,即在OSX上使用boot2docker。如果你正在使用Mac电脑,那么你可能无法回答这个问题。请不要尝试,因为有Linux答案(很简单)没有帮助。在Mac上是复杂的,因为docker主机不是本地Mac OS。它是在VirtualBox虚拟机中无头运行的linux@16mslipry试图避免在进行Docker构建之前将文件复制到VM。考虑到OSX在生产基础设施中[缺乏]流行,我将假设这是出于本地开发目的,而不是某种持续集成系统。为了绕过我在上一篇评论中所描述的内容,您可能希望尝试将要添加的文件放到服务器上(通过Dropbox或github公开共享),并通过将其添加到Dockerfile将其放入容器中<代码>运行curl-Ohttp://dl.dropboxusercontent.com/.../some.rpm
。这是你的问题的另一种选择,这就是为什么我没有把它作为答案发布。你需要知道你在问题中问的是什么,并提供一个答案