Как скопировать файлы и папки в рабочий каталог в Dockerfile?

Проблема

У меня есть простое приложение узла со следующей структурой:

├── 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
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
3 628
1

Ответы 1

Решение

Чтобы скопировать файлы и папки в рабочий каталог, вы можете использовать следующее в своем Dockerfile:

WORKDIR /working/directory/path
COPY . .

Это простой способ перейти в рабочий каталог и скопировать все из источника вашего хоста.

Пожалуйста, обрати внимание

Это скопирует все из исходного пути - больше удобства при локальном тестировании.

Я не мог найти однозначного ответа на этот вопрос, не проконсультировавшись с курсом. Этот ответ удовлетворил мою потребность в однострочной команде для копирования файлов и папок в рабочий каталог. В реальном приложении я, скорее всего, предпочел бы явные пути.

justinpage 25.08.2018 05:25

Другие вопросы по теме