使用ADD命令将目录复制到Docker中的另一个目录

Copy directory to other directory at Docker using ADD command

我有一个docs.docker.com读取http://////# Builder引擎参考点i met a附加问题。我想复制到本地目录go/user/local/码头

我想:

1
ADD go /usr/local/

和:

1
ADD /go/ /usr/local/

所以:

1
RUN chmod 0755 /usr/local/go/src/make.bash

然而,我看到下面的错误消息/usr/local/go/src/make.bash: No such file or directory但不包含make.bashgo本地目录。


1
ADD go /usr/local/

将复制的内容:你本地的go/usr/local/目录的目录在你的docker图像。

大的go复制目录本身在/usr/local/使用:

1
ADD go /usr/local/go

1
COPY go /usr/local/go


事实上ADD go /usr/local/将添加的内容的gofolder和不folder本身,你可以使用thomasleveil溶液或如果没有工作,你可以为一些理由,然后添加你的大的变化WORKDIR/usr/local/目录到它像:

1
2
WORKDIR /usr/local/
COPY go go/

1
2
WORKDIR /usr/local/go
COPY go ./

如果你想添加多个folders,它将被添加到他们的annoying这样,唯一的解决方案,因为现在我看到它从我目前的问题是使用COPY . .和exclude unwanted directories和所有文件在.dockerignore,让我们说我有folders和文件:

1
2
3
4
5
6
7
8
9
10
11
12
src
tmp
dist
assets
go
justforfun
node_modules
scripts
.dockerignore
Dockerfile
headache.lock
package.json

和我想添加src assets package.json justforfun go相比:

在dockerfile:

1
2
3
4
FROM galaxy:latest

WORKDIR /usr/local/
COPY . .

在.dockerignore文件:

1
2
3
4
node_modules
headache.lock
tmp
dist

或更多乐趣(或你想让更多的人不要混淆他们的suffer以及:P)可以:

1
2
3
4
5
6
7
*
!src
!assets
!go
!justforfun
!scripts
!package.json

在这种方式你忽略一切你想要的,但不包括什么是"添加复制或仅从忽略列表"。

这是一个更大的方式回答,但adding晚甚至更多的情况下是相同的覆盖。


你可以使用复制。你需要explicitly来指定的目录。它不会是由本身

1
COPY go /usr/local/go

参考:参考docker指挥所