Skip to content

Instantly share code, notes, and snippets.

@foundy
Last active September 8, 2017 07:09
Show Gist options
  • Save foundy/4fef0b494d242139231098132f8c25d4 to your computer and use it in GitHub Desktop.
Save foundy/4fef0b494d242139231098132f8c25d4 to your computer and use it in GitHub Desktop.
PM2
module.exports = {
// application
apps: [
{
name: 'app-1',
env: {
NODE_ENV: 'development',
PORT: 3000
},
env_staging: {
NODE_ENV: 'staging',
PORT: 8080
},
env_production: {
NODE_ENV: 'production',
PORT: 8080
}
}
],
// Deployment section
deploy: {
}
};

PM2

Documentation

http://pm2.keymetrics.io/docs/usage/cluster-mode/

Notes

environment를 변경하는 경우 (참고: switching-environments)
# development로 시작, env: development
$ pm2 start ecosystem.config.js

# production으로 변경
$ pm2 restart ecosystem.config.js --env production

# staging으로 변경
$ pm2 restart ecosystem.config.js --env staging
Process File의 --update-env

아래 예시와 같이 App name으로 reload 시에는 정상적으로 업데이트 된다.
하지만 Process Filereload 시에는 업데이트가 되지 않는다.

# 기본 포트 3000으로 시작
$ pm2 start ecosystem.config.js

# 포트를 8080으로 변경 시도
# Fail
$ PORT=8080 pm2 reload ecosystem.config.js --update-env

# Success
$ PORT=8080 pm2 reload app-1 --update-env
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment