Public | Automated Build

Last pushed: 3 months ago
Short Description
PM2 official Docker image with Alpine, PM2 docker, dumb-init and optional Keymetrics integration
Full Description


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.


$ docker pull keymetrics/pm2-docker-alpine

Versions available:

  • keymetrics/pm2-docker-alpine:latest with the latest version of Node.js
  • keymetrics/pm2-docker-alpine:7 with Node.js 7.4
  • keymetrics/pm2-docker-alpine:6 with Node.js 6.9
  • keymetrics/pm2-docker-alpine:4 with Node.js 4.7
  • keymetrics/pm2-docker-alpine:next with Node.js latest and pm2@next

These images are automatically built from the Docker hub based on this Github repository folder 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
# 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 "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


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.



Docker Pull Command
Source Repository

Comments (1)
4 months ago