Sto usando Docker con fig per compilare NodeJS dev-env.Nodemon non funziona nell'ambiente Docker
Mentre utilizzo nodemon per guardare server.js, la modifica di server.js non riavvierà il server.
CMD ["nodemon", "/nodeapp/server.js"]
Ma mentre sono passato da nodemon a supervisore, ha funzionato!
CMD ["supervisor", "/nodeapp/server.js"]
Qualcuno sa dove si trova il problema?
Maggiori informazioni sono al di sotto:
mia struttura di cartelle fig:
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: (codice di esempio dal sito 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/');
Grazie per la risposta. C'è un errore nel mio Dockerfile. In realtà, quello che voglio è: My nodejs env è nel contenitore Docker. Mentre cambio il mio codice nella cartella del progetto sul mio sistema operativo host, il contenitore rileva il file modificato e quindi riavvia automaticamente il server.js. È un mio errore che non ho descritto bene il mio problema. Can Docker può farlo? – kerkerj