pm2.config.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const argEnvIndex = process.argv.indexOf('--env')
  2. let argEnv = (argEnvIndex !== -1 && process.argv[argEnvIndex + 1]) || ''
  3. const env = {
  4. UNA_API_KEY: process.env.UNA_API_KEY,
  5. UNA_URL: process.env.UNA_URL,
  6. NEXT_PUBLIC_UNA_URL: process.env.NEXT_PUBLIC_UNA_URL,
  7. APP_URL: process.env.APP_URL,
  8. NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
  9. GOOGLE_WEB_CLIENT_ID: process.env.GOOGLE_WEB_CLIENT_ID,
  10. NEXT_PUBLIC_GOOGLE_WEB_CLIENT_ID: process.env.NEXT_PUBLIC_GOOGLE_WEB_CLIENT_ID,
  11. PROTO: process.env.PROTO,
  12. HOST: process.env.HOST,
  13. PORT: process.env.PORT,
  14. HTTPS: process.env.HTTPS,
  15. }
  16. const RUN_ENV_MAP = {
  17. local: {
  18. instances: 2,
  19. max_memory_restart: '250M',
  20. ...env
  21. },
  22. dev: {
  23. instances: 2,
  24. max_memory_restart: '250M',
  25. ...env
  26. },
  27. prod: {
  28. instances: 4,
  29. max_memory_restart: '1000M',
  30. ...env
  31. }
  32. }
  33. if (!(argEnv in RUN_ENV_MAP)) {
  34. argEnv = 'prod'
  35. }
  36. module.exports = {
  37. apps: [
  38. {
  39. name: 'neoapp',
  40. //script: './../../node_modules/next/dist/bin/next',
  41. script: './node_modules/next/dist/bin/next',
  42. args: 'start',
  43. instances: RUN_ENV_MAP[argEnv].instances,
  44. exec_mode: 'cluster',
  45. watch: false,
  46. max_memory_restart: RUN_ENV_MAP[argEnv].max_memory_restart,
  47. env_local: {
  48. APP_ENV: 'local'
  49. },
  50. env_dev: {
  51. APP_ENV: 'dev'
  52. },
  53. env_prod: {
  54. APP_ENV: 'prod'
  55. }
  56. }
  57. ]
  58. }