Rzeczywiście ADD go /usr/local/
doda zawartość z go
folderu, a nie sam folder, można użyć Thomasleveil rozwiązanie lub jeśli to nie działa z jakiegoś powodu można zmienić WORKDIR
, aby /usr/local/
następnie dodać katalog do niego tak:
WORKDIR /usr/local/
COPY go go/
lub
WORKDIR /usr/local/go
COPY go ./
Ale jeśli chcesz dodać wiele folderów, dodawanie ich w ten sposób będzie denerwujące, jedynym rozwiązaniem na razie, jak widzę w moim bieżącym problemie, jest używanie COPY . .
i wykluczanie wszystkich niechcianych katalogów i plików .dockerignore
, powiedzmy, że mam foldery i pliki :
- src
- tmp
- dist
- assets
- go
- justforfun
- node_modules
- scripts
- .dockerignore
- Dockerfile
- headache.lock
- package.json
i chcę dodać, src assets package.json justforfun go
więc:
w Dockerfile:
FROM galaxy:latest
WORKDIR /usr/local/
COPY . .
w pliku .dockerignore:
node_modules
headache.lock
tmp
dist
Lub dla większej zabawy (lub chcesz pomylić więcej osób, które również cierpią: P) może być:
*
!src
!assets
!go
!justforfun
!scripts
!package.json
W ten sposób ignorujesz wszystko, ale wykluczasz to, co chcesz skopiować lub dodać tylko z „listy ignorowanych”.
Jest to odpowiedź późna, ale dodaje więcej sposobów, aby zrobić to samo, obejmując jeszcze więcej przypadków.
ADD
warstwy dla każdego katalogu źródłowego)?