Skip to content

ruhmesmeile/pm2-docker-alpine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keymetrics/pm2-docker-alpine

https://travis-ci.org/keymetrics/pm2-docker-alpine

Node.js lightweight Docker image including the PM2 runtime for production applications.

This Docker image in association with PM2, increase application uptime, increase performance (spawn multiple processes and load-balance network query without any code change) and allow graceful state change, adapted to production environment.

Usage

$ docker pull keymetrics/pm2-docker-alpine

Versions available:

  • keymetrics/pm2-docker-alpine:latest with Node.js 6
  • keymetrics/pm2-docker-alpine:4 with Node.js 4
  • keymetrics/pm2-docker-alpine:0.12 with Node.js 0.12

These images are automatically built from the Docker hub based on this Github repository branch arrangement.

Hub link

Running the container

Make sure you declared a process file called process.yml, this file will be started by PM2.

# Get example app
$ git clone https://github.com/keymetrics/pm2-docker-alpine
# Run example app, mounted as a volume
$ docker run -p 80:3000 -v `pwd`/example_app:/app keymetrics/pm2-docker-alpine

For Keymetrics linking you can set the extra env variables:

-e "KEYMETRICS_SECRET=YYY
-e "KEYMETRICS_PUBLIC=XXX"
-e "INSTANCE_NAME=hostname"

Log output

Append to pm2-docker CMD directive:

  • --json to output logs in JSON
  • --format to output logs in key=val style
  • --raw to display logs in raw format

Actions

Monitoring CPU/Usage of each process

$ docker exec -it <container_id> pm2 monit

Listing managed processes

$ docker exec -it <container_id> pm2 list

Get more information about a process

$ docker exec -it <container_id> pm2 show <app_name>

0sec downtime reload all applications

$ docker exec -it <container_id> pm2 reload all

Automatically synchronize your application with git

Add into your Dockerfile:

RUN pm2 install pm2-auto-pull

Or try it:

$ docker exec -it <container_id> pm2 install pm2-auto-pull

Make sure the .git is present in your application source folder.

License

MIT

About

Node.js lightweight Docker image including the PM2 runtime

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 86.2%
  • JavaScript 13.8%