My ecosystem.config.js looks like this:
module.exports = {
apps: [{
name: 'production',
script: '/home/username/sites/Website/source/server.js',
env: { NODE_ENV: 'PRODUCTION' },
args: '--run-server'
}, {
name: 'staging',
script: '/home/username/sites/WebsiteStaging/source/server.js',
env: { NODE_ENV: 'STAGING' },
args: '--run-server'
}],
deploy: {
production: {
user: 'username',
host: ['XXX.XXX.XX.XXX'],
ref: 'origin/production',
repo: '[email protected]:ghuser/Website.git',
path: '/home/username/sites/Website',
'post-deploy': 'npm install && pm2 reload ecosystem.config.js --only production',
env: { NODE_ENV: 'PRODUCTION' }
},
staging: {
user: 'username',
host: ['XXX.XXX.XX.XXX'],
ref: 'origin/staging',
repo: '[email protected]:ghuser/Website.git',
path: '/home/username/sites/WebsiteStaging',
'post-deploy': 'npm install && pm2 reload ecosystem.config.js --only staging',
env: { NODE_ENV: 'STAGING' }
}
}
};
When I deploy the application, I expect to see two processes - one called 'production' and one called 'staging'. These run code from the same repo, but from different branches.
I do see two processes, however, when I run pm2 desc production
I can see that the script path is /home/username/sites/WebsiteStaging/source/server.js
. This path should be /home/username/sites/Website/source/server.js
as per the config file.
I've tried setting the script to ./server.js
and using the cwd
parameter but the result has been the same.
The deploy commands I am using are pm2 deploy production
and pm2 deploy staging
and I have verified that both the Website
and the WebsiteStaging
folders are present on my server.
Is there something I'm missing here? Why would it be defaulting to the staging folder like this?
pm2 desc staging
what do you get? – Henhouse