Puts a node app into a docker container
Create a docker container from a node app and run it, because we're hipster like that.
I'd love to hear your feedback. There are a lot of details to flesh out yet. Also checkout my wish list below.
npm install node-container
Give it the path of your node app...it'll do the rest (ideally). Note: The docker daemon needs to run somewhere accessible.
You can do npm test to see it in action.
The first time you run it can take a while, since it needs to fetch the base images.
Subsequent runs should be pretty fast.
var containerize = require'node-container' // pass it the directory of your node app, config is optional containerize__dirname + '/testrepo' config if err throw err console.log'DONE' console.logcontainer
container is the output of docker inspect [container].
There you'll find the containers id, pid, network settings etc.
All of these are optional, but you probably want to at least set the docker config.
It can also be specified in the environment as
DOCKER_HOST=tcp://localhost:4243
// docker config host: 'http://localhost' port: 4243 // socketPath: '', // prefix for images and containers, eg 'prefix-appname' or 'prefix/imagename' prefix: 'tests' // whether to run the container or not run: true // whether to monitor the node process with mon or not monitor: true
npm packs your app, so you get all the npm goodies you expectvisionmedia/mon) to keep your app runningnpm install --production for your appnpm start for your appmonprocess.env.PORTport: 1234 otherwhise it defaults to 3000. If you don't want to expose it to the world you can set port: falsenpm startOptions you can set in your app's package.json
"port": false
Take a look add the test app.
If you find a bug, have a feature request or any kind of question, please open an issue or submit a pull request. I'm open for discussing any kind of idea for node-container.