Я использую Docker с инжиром для сборки NodeJS dev-env.Nodemon не работает в среде Docker
Хотя я использую nodemon для просмотра server.js, изменение server.js не будет перезапускать сервер.
CMD ["nodemon", "/nodeapp/server.js"]
Но пока я перешел от нодема к супервизору, это сработало!
CMD ["supervisor", "/nodeapp/server.js"]
Кто-нибудь знает, где проблема?
Больше информации ниже:
Моя структура папок инжир:
app/server.js
package.json
node_modules/
fig.yml
Dockerfile
fig.yml:
nodejs:
build: .
ports:
- "8080:8080"
Dockerfile:
RUN apt-get update --fix-missing
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
# NVM
RUN curl -sL https://deb.nodesource.com/setup | sudo bash - && \
apt-get install -y nodejs
VOLUME ./app:/nodeapp
WORKDIR /nodeapp
RUN rm /bin/sh && ln -s /bin/bash /bin/sh && \
npm install -g nodemon mocha supervisor
CMD ["nodemon", "/nodeapp/server.js"]
Server.js: (примеры кода с сайта NodeJS)
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello 12\n');
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
Спасибо за ваш ответ. В моем Dockerfile есть ошибка. На самом деле, я хочу: My nodejs env находится в контейнере Docker. Пока я меняю свой код в папке проекта на моей ОС хоста, контейнер будет обнаруживать измененный файл, а затем автоматически перезапускать server.js. Это моя ошибка, что я плохо описал свою проблему. Может ли Docker это сделать? – kerkerj