can't install npm in the docker container?

I am deploying a simple node.js app on a digital ocean server ‘s docker platform.

// package.json

  • How to fix version mis-matching for docker-compose
  • Docker: Unable to view running container despite successful demo example
  • Linux command output as input at particular location of another command.?
  • Get docker IP address from Image name
  • Where do untagged Docker images come from?
  • Docker - ELK - vm.max_map_count
  • {
      "name": "docker-centos-hello",
      "private": true,
      "version": "0.0.1",
      "description": "Node.js Hello world app on CentOS using docker",
      "author": "Daniel Gasienica <daniel@gasienica.ch>",
      "dependencies": {
        "express": "3.2.4"
      }
    }
    

    // app.js

    var express = require('express');
    var PORT = 3000;
    var app = express();
    app.get('/', function (req, res) {
      res.send('Hello world\n');
    });  
    app.listen(PORT);
    console.log('Running on http://localhost:' + PORT);
    

    // docker file

    FROM dockerfile/nodejs
    # Set the working directory
    WORKDIR   /src
    EXPOSE  3000
    CMD ["/bin/bash"]
    

    The docker base image is the dockerfile/nodejs, which has built a node.js, I built the image:

    docker build -t test1 /home/sizhe/docker/test
    

    and run the image:

    docker run -it -p 8080:3000 -v /home/sizhe/docker/test1:/src test
    

    By running the image, I can successfully into the container, the app files are all copied into the container. when I tried the command to install the node.js dependency:

    npm install
    

    However, npm can’t download all the packages, with a error:

    Linux 3.13.0-40-generic
    npm ERR! argv "node" "/usr/local/bin/npm" "install"
    npm ERR! node v0.10.35
    npm ERR! npm  v2.1.16
    npm ERR! code ENOTFOUND
    npm ERR! errno ENOTFOUND
    npm ERR! syscall getaddrinfo
    
    npm ERR! network getaddrinfo ENOTFOUND
    npm ERR! network This is most likely not a problem with npm itself
    npm ERR! network and is related to network connectivity.
    npm ERR! network In most cases you are behind a proxy or have bad network settings.
    npm ERR! network 
    npm ERR! network If you are behind a proxy, please make sure that the
    npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
    

  • Unable to connect to Redis Cluster from inside Docker container
  • maven-release-plugin automatically run a script before commit
  • pytest: environment variable to specify pytest.ini location
  • 'docker cp' command in Jenkins docker container copies a file into a directory
  • Docker EXPOSE vs command line -p option (boot2docker)
  • Docker rails project
  • One Solution collect form web for “can't install npm in the docker container?”

    Make sure the dns is set properly. I had some issues that were gone after the docker service restart. If it didn’t help you may want to use the --dns 8.8.8.8 docker switch.

    Restarting docker service:

    • on systemd architecture – sudo systemctl restart docker
    • boot2docker – boot2docker restart
    • Docker Machine – docker-machine restart <machine_name>

    Also, I did something similar (nodejs image), but I’ve used another base image, feel free to use whatever you need from my repo.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.