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