Dockerfile-如何从本地文件夹复制文件?
下面是Dockerfile-如何从本地文件夹复制文件?,docker,dockerfile,docker-volume,Docker,Dockerfile,Docker Volume,下面是Dockerfile: FROM golang:1.14.10 MAINTAINER xyz COPY ~/go/bin/product-api /go/bin/product-api COPY ~/go/bin/swagger /go/bin/swagger ENTRYPOINT ["/go/bin/product-api"] 在docker build-t cloud本机产品api:1.0.0.上,给出错误: Step 3/5 : COPY ~/go/bi
Dockerfile
:
FROM golang:1.14.10
MAINTAINER xyz
COPY ~/go/bin/product-api /go/bin/product-api
COPY ~/go/bin/swagger /go/bin/swagger
ENTRYPOINT ["/go/bin/product-api"]
在docker build-t cloud本机产品api:1.0.0.上,给出错误:
Step 3/5 : COPY ~/go/bin/product-api /go/bin/product-api
COPY failed: stat /var/lib/docker/tmp/docker-builder398080099/~/go/bin/product-api: no such file or directory
我认为映像构建过程将
/var/lib/docker/tmp/docker-builder398080099
作为工作区,并从该路径引用
如何将文件从本地计算机的特定文件夹复制到Docker映像
该指令从中复制新文件或目录,并将它们添加到路径处容器的文件系统中
您缺少的关键内容是与文档副本部分相关的构建上下文: 路径必须在构建的上下文中;您不能复制../something/something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护进程 这里描述“上下文” 但从本质上讲,当您说“docker build directory with docker file”时,COPY只会看到包含docker文件的目录中(及其下)的文件 您可能想做的是在docker构建期间编译“swagger”,然后将其放入您想要的路径中
需要记住的一点是docker文件通常是可复制的,因此如果在十台不同的主机上运行docker build,将生成完全相同的映像。从主机上的任意位置复制文件不会导致这种情况。如果要实现这一点,您需要使用卷,这里有更多信息-@nishkaush我想,卷主要用于docker容器。第一次,我在构建映像时遇到了卷的用法。您需要在
docker build
命令(可能是docker build~/go
)中指定一些目录,其中包含需要复制的所有文件;Dockerfile需要位于该目录(或目录树,带有-f
选项)中,并且它只能使用相对路径。您所说的是正确的,我将复制源代码并生成