事实上,ADD go /usr/local/
将新增内容的go
文件夹,而不是文件夹本身,你可以使用Thomasleveil解决方案,或者如果没有工作,由于某种原因,你可以改变WORKDIR
,以/usr/local/
再加入您的目录像:
WORKDIR /usr/local/
COPY go go/
要么
WORKDIR /usr/local/go
COPY go ./
但是,如果您想添加多个文件夹,那么那样添加它们将很烦人,目前,从我当前的问题来看,目前唯一的解决方案是使用COPY . .
并排除其中的所有不需要的目录和文件.dockerignore
,假设我有文件夹和文件:
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
我想补充一下src assets package.json justforfun go
:
在Dockerfile中:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
在.dockerignore文件中:
node_modules
headache.lock
tmp
dist
或者为了获得更多乐趣(或者您想使更多的人感到困惑,也使他们受苦:P)可以是:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
这样,您将忽略所有内容,但仅从“忽略列表”中排除要复制或添加的内容。
这是一个较晚的答案,但是增加了更多的方法来执行相同的操作,甚至可以覆盖更多的情况。
ADD
为每个源目录创建一个层)?