Linux 当Docker文件存在于文件夹中时,如何将任何文件夹复制到Docker容器中?

Linux 当Docker文件存在于文件夹中时,如何将任何文件夹复制到Docker容器中?,linux,docker,containers,linux-containers,Linux,Docker,Containers,Linux Containers,假设我在git上有一个repo-repo,我已经将它链接到Docker Cloud进行自动构建。构建需要我将整个REPO文件夹复制到容器上 是否有任何方法可以使内部的DockerfileREPO将其内容复制到容器中?我已经查找了ADD和COPY,但它们只有在Dockerfile位于REPO之外的一个目录的文件夹中时才起作用 文件夹 |->Dockerfile回购——有效 文件夹 |->回购 |->Dockerfile——不起作用 即使是通配符,如命令: ADD./*/root/似乎不起作用。如果

假设我在git上有一个repo-
repo
,我已经将它链接到Docker Cloud进行自动构建。构建需要我将整个
REPO
文件夹复制到容器上

是否有任何方法可以使内部的Dockerfile
REPO
将其内容复制到容器中?我已经查找了
ADD
COPY
,但它们只有在
Dockerfile
位于
REPO
之外的一个目录的文件夹中时才起作用

文件夹
|->Dockerfile回购
——有效

文件夹
|->回购
|->Dockerfile
——不起作用

即使是通配符,如命令:
ADD./*/root/
似乎不起作用。

如果我理解正确,下面的dockerfile会满足您的要求:

FROM alpine

RUN mkdir /test
WORKDIR /test

COPY ./ /test/

CMD ["/bin/sh"]
使用
$dir
中的以下输入,并从
$dir
运行docker build:

Dockerfile somefile   somefolder
docker映像中的
/test/
包含:

/test # ls
Dockerfile  somefile    somefolder

这是完全可能做到的。作为
文件夹的根目录(如图所示)。你需要:

docker build . -f REPO/Dockerfile -t imagename

并相对于

执行
复制
添加
。/*/test/命令忽略文件夹结构。它只是将所有文件和文件夹内容转储到
test
中。我注意到,
copy./
不带
*
但至少在我的测试系统上保留了它(docker版本17.03.1-ce)