Перезапуск при правке в Docker
Перезапуск при правке снова включает скрипт, когда файл на диске изменился. Процесс node можно запустить с флагом слежения, и сохранение на хосте не требует ручного перезапуска контейнера.
Код лежит в app/server.js
и отдаёт hello
на порту 3000:
const http = require('node:http');
const server = http.createServer((req, res) => {
res.end('hello');
});
server.listen(3000, '0.0.0.0');
Том ./app:/app подставляет
скрипт с диска.
В команде сервиса флаг
следит за server.js
и поднимает процесс снова
после сохранения.
Сторонний пакет не ставят.
Файл compose.yaml:
services:
web:
image: node:24
ports:
- "3000:3000"
volumes:
- ./app:/app
working_dir: /app
command: ["node", "--watch", "server.js"]
После подъёма в фоне правка
текста в app/server.js
должна дойти до страницы
без docker compose restart.
Запуск проекта:
docker compose up -d
Опишите сервис live с кодом на диске и ответом live на порту 3000, чтобы процесс поднимался снова после правки файла.
Измените слово в server.js и проверьте страницу без ручного перезапуска контейнера.