Я создаю приложение NodeJS на Docker в режиме Swarm (один узел). Я использую том для подключения к исходному коду NodeJS. Все работает отлично, и я вижу вывод в localhost из NodeJS и Express, но когда я что-то изменяю в коде NodeJS (который находится в томе монтирования bind), ничего не меняется. Я должен перезапустить свой сервис, чтобы наблюдать за изменениями. Раньше, когда я работал только с Docker Compose, этого никогда не происходило, но теперь, когда я переключился на Swarm, у меня возникают проблемы.
Я использую Docker 18 с Visual Studio Code 1.39 в macOS 10.14. 6
Dockerfile
FROM node:12-alpine
WORKDIR /node-dir
COPY package*.json ./
RUN npm install
docker-compose.yml file
# Docker-compose.yml
version: '3.7'
services:
node-service:
image: node-img:1.0
ports:
- 80:3000
working_dir: "/node-dir"
volumes:
- ./node-dir/source:/node-dir/source
networks:
- ness-net
command: npm start
networks:
ness-net:
Я также читал, что это может быть связано с inode, большинство редакторов при сохранении файлаломает ссылку. Но он работал правильно в docker-compose с кодом Visual Studio, его поведение изменилось только в Docker Swarm.
Обновление: я обработал статический html-файл, используя Nginx с bind mount, и я легко могу изменить этот файлиспользуя VS Code и это отражается. Это единственный NodeJS, который не обнаруживает изменения в файле.