Running your Node App on Docker
If you’re a code-hipster you create your new apps using Node and of course deploy using Docker ;). This article shows a quick way how.
What base image should we use? Most obvious are the official node image and Google’s google/nodejs image.
Looking at their sizes we go for the last one.
REPOSITORY TAG IMAGE ID VIRTUAL SIZE
node 0.10-onbuild 237c2a0fc3f9 630.8 MB
google/nodejs latest e5e42af565ae 324 MB
Create a .dockerignore
file. Add stuff like:
node_modules
bower_components
Create a Dockerfile
:
FROM google/nodejs-runtime
ENV NODE_ENV=production
# Assets
RUN ./node_modules/bower/bin/bower install --allow-root
RUN ./node_modules/.bin/connect-assets -i bower_components -o public/assets
ENV PORT=8080
Create a docker-compose.yml
:
web:
build: .
ports:
- "80:8080"
Now build your environment using docker-compose build
and start it using docker-compose up
.
Next you should be able to access your app via boot2docker typically on http://192.168.59.103. Check boot2docker ip
for your actual IP.