Действительно 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
слоя для каждого исходного каталога)?