Estimados, al momento de correr: <code>docker run --rm -p 3000:3000 -v /Users/MacbookAir/Documents/DockerTest/docker-master:/usr/src plat...

Henry Daniel Campoverde Borja

Henry Daniel Campoverde Borja

Pregunta
studenthace 6 años

Estimados, al momento de correr:

docker run --rm -p 3000:3000 -v /Users/MacbookAir/Documents/DockerTest/docker-master:/usr/src platziapp

Me da un error:

Error: Cannot find module '/root/.npm/_npx/1/lib/node_modules/nodemon/bin/postinstall' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15) at Function.Module._load (internal/modules/cjs/loader.js:507:25) at Function.Module.runMain (internal/modules/cjs/loader.js:742:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3) [nodemon] 1.18.9 [nodemon] to restart at any time, enter `rs` [nodemon] watching: *.* [nodemon] starting `node index.js` internal/modules/cjs/loader.js:583 throw err; ^

Pienso que es por lo que se montó con el -v, pero no sé como solucionarlo

Por fa si alguien me da una mano!

Saludos

10 respuestas
para escribir tu comentario
    Victor Arciles

    Victor Arciles

    studenthace 5 años

    Yo resolvi el mismo problema (en OSX) unicamente haciendo despues de clonar el repositorio de github

    npm install

    Puedes hacerlo antes o despues de construir la imagen, pero yo considero que lo correctos es hacerlo antes de construir la imagen ya que la carpeta node_modules no existe, este directorio es donde se guardan todos los módulos que usa el proyecto entre los cuales esta express que es el que nos da el error.

    Luego puedes correr el contenedor y debería funcionar.

    Gabriel Alejandro Terán Guerrero

    Gabriel Alejandro Terán Guerrero

    studenthace 5 años

    Como dice jogs el problema no esta en el container, el problema esta en como se crea el volumen. Cuando se crea un bind mount o un volumen mount si hay algo en estos (ya sea archivos o carpetas), sobreescribiran su contenido en el contenedor, por lo que si en tu computadora host no tienes el node_modules, este no se sobreescribira en el contenedor y por lo tanto no funcionara la aplicación.De igual forma este problema puede ser resolvido con Docker-Compose y es mencionado en las siguientes clases

    Jorge Nicolas Salinas Galindo

    Jorge Nicolas Salinas Galindo

    studenthace 6 años

    Adicione en el dockerfile:

    RUN npm install -g npx RUN npm install -g nodemon

    Y ya no sale el error, pero ahora me sale el siguiente error:

    $ docker run --rm -p 3000:3000 -v c:\users\usuario\source\repos\docker\docker:/usr/src platziapp

    Usage: nodemon [nodemon options] [script.js] [args] See "nodemon --help" for more.

    cambie la versión de nodemon por la ultimo y por varias versiones entre la versión del ejemplo del repositorio y la ultima y aun así persiste el error. espero que me puedan colaborar muchas gracias

    Joaquin García Santiago

    Joaquin García Santiago

    studenthace 6 años

    Si entiendo correctamente el error esta en hacer -v al montar una carpeta del sistema anfitrión en el contenedor, estamos sobre escribiendo lo que se instalo en el dockerfile con

    npm install

    En resumen si no tienes la carpeta node_modules al hacer

    docker run
    la aplicación no funciona

    lo que hice fue lo siguiente:

    • Cree una carpeta llamada
      app
      y moví el archivo
      index.js
      a la carpeta app
    • Posteriormente cambie la ruta de ejecución de
      index.js
      a
      app/index.js
      dentro del dockerfile

    Así quedo el archivo

    FROM node:10.15.3-alpine COPY ["package.json", "package-lock.json", "/usr/src/"] WORKDIR /usr/src RUN npm install COPY [".", "/usr/src/"] EXPOSE 3000 CMD ["npx", "nodemon", "app/index.js"]
    Gustavo Adolfo Ramírez Apache

    Gustavo Adolfo Ramírez Apache

    studenthace 6 años

    como puedo solucionar ese error ya hice todo loq ue pusieron aca y nada funciona

    Pedro Roberto Capriles Morales

    Pedro Roberto Capriles Morales

    studenthace 6 años

    Amigo también me dio ese error y lo resolví descargando las dependencias de npx en el dockerfile antes del CMD

    RUN npm install -g npx

    y también

    RUN npm install -g nodemon

    este comando con las dependencias de nodemon de forma global

    Espero te sirva saludos.

    Henry Daniel Campoverde Borja

    Henry Daniel Campoverde Borja

    studenthace 6 años

    @yajairo87 No creo que sea problema de la dependencia, porque si quito que se monte el volumen, funciona correctamente

    Oscar Vesga

    Oscar Vesga

    studenthace 6 años

    Estoy en windows usando docker toolbox, y el comando corre bien si no uso el volumen de la carpeta local, pero al colocarle el comando

    -v pathLocal:/usr/src
    me saca el error. Agradezco cualquier sugerencia 😄

    Oscar Vesga

    Oscar Vesga

    studenthace 6 años

    Se supone que el comando

    npm install
    descarga todas las dependencias, incluida npx. Tengo el mismo error y no logro resolverlo

    Jair Israel Avilés Eusebio

    Jair Israel Avilés Eusebio

    studenthace 6 años

    Verifica que tu dependencia de nodemon este correctamente definida en el archivo package.json, al parecer no esta consiguiendo resolverla cuando ejecuta se ejecuta el comando

    npm install
    dentro del contenedor

Fundamentos de Docker 2018

Fundamentos de Docker 2018

Crea software funcional y de fácil distribución con Docker, la tecnología que permite ejecutar aplicaciones de forma independiente. Agiliza el desarrollo de web apps y backend. Divide y facilita tus tareas de programación con los containers de Linux.

Fundamentos de Docker 2018
Fundamentos de Docker 2018

Fundamentos de Docker 2018

Crea software funcional y de fácil distribución con Docker, la tecnología que permite ejecutar aplicaciones de forma independiente. Agiliza el desarrollo de web apps y backend. Divide y facilita tus tareas de programación con los containers de Linux.