############################################################################### # Version 2: using curl, make, and npmjs.org’s install script # Installs using make and shell script # Easier to update node and npm versions in future # Requires sudo to use npm ############################################################################### # create new docker ubuntu container sudo docker run -i -t ubuntu /bin/bash # drops you into container as root # update and install all required packages (no sudo required as root) # https://gist.github.com/isaacs/579814#file-only-git-all-the-way-sh apt-get update -yq && apt-get upgrade -yq && \ apt-get install -yq g++ libssl-dev apache2-utils curl git python make nano # install latest Node.js and npm # https://gist.github.com/isaacs/579814#file-node-and-npm-in-30-seconds-sh mkdir ~/node-latest-install && cd $_ && \ curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1 && \ make install && \ # takes a few minutes to build... curl https://www.npmjs.org/install.sh | sh # add user with sudo privileges within Docker container # without adduser input questions # http://askubuntu.com/questions/94060/run-adduser-non-interactively/94067#94067 USER="testuser" && \ adduser --disabled-password --gecos "" $USER && \ sudo usermod -a -G sudo $USER && \ echo "$USER:abc123" | chpasswd && \ su - $USER # switch to testuser # install common full-stack JavaScript packages globally # http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation sudo npm install -g yo grunt-cli bower express # optional, check locations and packages are correct which node; node -v; which npm; npm -v; \ npm ls -g --depth=0