Saltar al contenido

Nodemon no funciona en el entorno Docker

Solución:

Hay una opción especial para habilitar el modo de observación heredado de nodemon:

nodemon --legacy-watch

Así es como lo hago:

Necesitará la versión 1.3.0-5 de nodemon para esto (npm i -g [email protected])

.dockerignore:

node_modules/*

Dockerfile:

FROM node:0.10

WORKDIR /nodeapp
ADD ./package.json /nodeapp/package.json
RUN npm install --production

ADD ./app /nodeapp/app

EXPOSE 8080

CMD ["node", ".", "--production"]

package.json:

{
  "name": "fig-nodemon",
  "version": "1.0.0",
  "description": "",
  "main": "./app/server.js",
  "scripts": {
    "nodemon": "fig up -d && fig run nodejs npm i --development && nodemon -x "fig kill nodejs && fig build nodejs && fig start nodejs && fig logs nodejs""
  },
  "author": "",
  "license": "MIT"
}

fig.yml:

nodejs:
  build: .
  command: node . --development
  volumes:
    - ./app:/nodeapp/app
  ports:
    - "8080:8080"

aplicación / server.js:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello 13n');
}).listen(8080);

console.log('Server running at http://127.0.0.1:8080/');

entonces corro npm run nodemon Para empezar.

por primera vez – VOLUME ./app:/nodeapp no hace lo que quieres, estás creando un directorio en la imagen llamado /app:/nodeapp – por lo que en ningún momento el archivo server.js llega a su imagen.

prueba usando docker run --rm -it yourimagename ls -la

cambiando su Dockerfile a

FROM ubuntu

RUN apt-get update --fix-missing
RUN apt-get install -yq curl
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
ADD     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"]

me atrapa:

mini:nodaemon sven$ docker run --rm -it -p 8080:8080 nodaemon     
2 Dec 02:27:52 - [nodemon] v1.2.1
2 Dec 02:27:52 - [nodemon] to restart at any time, enter `rs`
2 Dec 02:27:52 - [nodemon] watching: *.*
2 Dec 02:27:52 - [nodemon] starting `node /nodeapp/server.js`
Server running at http://127.0.0.1:8080/
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *