Ответ 1
Я считаю, что вам нужно:
COPY downloads /tmp/downloads/
Это скопирует содержимое каталога загрузок в каталог с именем /tmp/downloads/
.
My directory Структура следующим образом
Dockerfile downloads
Я хочу добавить загрузки в /tmp
ADD downloads /tmp/
COPY down* /tmp
ADD ./downloads /tmp
Работает Nothings. Он копирует содержимое загрузок в tmp. Я хочу скопировать загрузчик floder. Любая идея?
ADD . tmp/
копирует файл Dockerfile. Я не хочу копировать Dockerfile в tmp/
Я считаю, что вам нужно:
COPY downloads /tmp/downloads/
Это скопирует содержимое каталога загрузок в каталог с именем /tmp/downloads/
.
Примечание: сам каталог не копируется, только его содержимое
Из справки по dockerfile о COPY
и ADD
говорится Note: The directory itself is not copied, just its contents.
, поэтому вы должны явно указать каталог dest.
RE: https://docs.docker.com/engine/reference/builder/#copy
например
Скопируйте содержимое каталога src
каталог /some_dir/dest_dir
.
COPY ./src /some_dir/dest_dir/
Сначала введите каталог, который вы хотите добавить как один файл архива:
tar -zcf download.tar.gz download
Затем добавьте файл архива в файл Docker:
ADD download.tar.gz tmp/
Вы можете использовать:
RUN mkdir /path/to/your/new/folder/
COPY /host/folder/* /path/to/your/new/folder/
Я не мог найти способ сделать это напрямую только с одним вызовом COPY
.
Лучшим для меня было:
COPY . /tmp/
Со следующим файлом .dockerignore в корне
Dockerfile
.dockerignore
# Other files you don't want to copy
Это решение хорошо, если у вас есть много папок и файлов, которые вам нужны в контейнере, и не так много файлов, которые вам не нужны. В противном случае user2807690 'решение лучше.
Если папка не заканчивается на /
, она считается файлом, поэтому вы должны написать что-то вроде записи ADD /abc/ def/
, если вы хотите скопировать папку.