исходные файлы должны быть синхронизированы c как локально, так и в контейнере.
. Для этого вам просто нужно смонтировать каталог проекта в контейнер, как говорится официальная документация . Например:
docker run -v $PWD:/home/node node:alpine node index.js
Что он делает:
Он будет запускать контейнер на основе node:alpine
изображения;
node index.js
команда будет выполнена, когда контейнер будет готов;
Вывод консоли будет поступать из контейнера на консоль вашего хоста, чтобы вы могли отлаживать вещи. Если вы не хотите видеть вывод, но возвращаете управление своей консоли, вы можете использовать флаг -d
.
И самое ценное, что ваш текущий каталог ($PWD
) полностью синхронизируется с каталогом /home/node/
контейнера. Любое обновление файла будет немедленно представлено в файлах вашего контейнера.
Я также хочу горячую перезагрузку
Это зависит от подхода, который вы используете для обслуживать ваше приложение.
Например, вы можете использовать Webpack dev server с настройкой горячей перезагрузки. После этого все, что вам нужно для сопоставления порта с портом вашего сервера разработки веб-пакетов.
docker run \
-v $PWD:/home/node \
-p 8080:8080 \
node:alpine \
webpack-dev-server \
--host 0.0.0.0 \
--port 8080