Everyday Docker is becoming easier to use with the community pushing the platform in new ways and lowering the barrier of entry. Recently (18th December 2014) the Node.js community created a new OnBuild Docker image. The OnBuild image takes the base node:0.10.34 image and automatically copies your application source code, installs NPM packages and launches the application based on the defined NPM Start command. It’s a very nice abstraction and the use of npm makes it very generic. As a result, an application Docker file simply looks like this:
FROM node:0.10.34-onbuild
EXPOSE 3000
The docker commands remain the same as before.
docker build -t my-nodejs-app .
docker run -it --rm --name my-running-app my-nodejs-app
The OnBuild pattern appears to be common across multiple different languages, for example here is GoLang’s OnBuild Dockerfile.
Very useful for quickly getting up and running with Node.js and Docker.