Проблема
У меня есть простое приложение узла со следующей структурой:
├── Dockerfile
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ └── stylesheets
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.hbs
├── index.hbs
└── layout.hbs
Как в моем Dockerfile скопировать файлы и папки в рабочий каталог, который следует той же файловой структуре, что и мой хост?
То есть, если бы я перечислил содержимое моей рабочей папки как команду запуска, оно бы соответствовало:
Step 9/11 : RUN ls -la ./
---> Running in 15dd5125da65
total 40
drwxr-xr-x 1 root root 4096 Aug 25 02:58 .
drwxr-xr-x 1 root root 4096 Aug 25 00:30 ..
-rw-r--r-- 1 root root 2685 Aug 25 02:58 Dockerfile
-rw-r--r-- 1 root root 1256 Aug 25 00:17 app.js
drwxr-xr-x 2 root root 4096 Aug 25 00:17 bin
drwxr-xr-x 79 root root 4096 Aug 25 00:30 node_modules
-rw-r--r-- 1 root root 341 Aug 25 00:17 package.json
drwxr-xr-x 4 root root 4096 Aug 25 00:17 public
drwxr-xr-x 2 root root 4096 Aug 25 00:17 routes
drwxr-xr-x 2 root root 4096 Aug 25 00:17 views





Решение
Чтобы скопировать файлы и папки в рабочий каталог, вы можете использовать следующее в своем Dockerfile:
WORKDIR /working/directory/path
COPY . .
Это простой способ перейти в рабочий каталог и скопировать все из источника вашего хоста.
Пожалуйста, обрати внимание
Это скопирует все из исходного пути - больше удобства при локальном тестировании.
Я не мог найти однозначного ответа на этот вопрос, не проконсультировавшись с курсом. Этот ответ удовлетворил мою потребность в однострочной команде для копирования файлов и папок в рабочий каталог. В реальном приложении я, скорее всего, предпочел бы явные пути.