pm2自动化部署未更新代码
发布于 7 年前 作者 StriveNuby 5105 次浏览 来自 问答

ecosystem.json 的配置

{
	"apps": [{
		"name": "Ice",
		"script": "server.js",
		"env": {
			"COMMON_VARIABLE": "true"
		},
		"env_production": {
			"NODE_EMV": "production"
		}
	}],
	"deploy": {
		"production": {
			"user": "",(忽略)
			"host": "",(忽略)
			"ref": "origin/master",
			"repo": "git@code.aliyun.com:nuby/ice.git",
			"path": "/website/ice/production",
			"ssh-options": "StrictHostKeyChecking=no",
			"post-deploy" : "pm2 startOrRestart ecosystem.json --env production",
			"env": {
				"NODE_EMV": "production"
			}
		}
	}
}

执行部署

pm2 deploy ecosystem.json production setup

再次带动代码git上去,执行

pm2 deploy ecosystem.json production

但在远程服务上并未将代码更新。。有哪位大神知道是为啥吗

3 回复

去服务器看下 git status

部署 一直要输入服务器密码是怎么回事! 我已经配置ssh 免密码登录了

~ pm2 -V 2.7.1

// ecosystem.config.js

module.exports = {
  /**
   * Application configuration section 应用配置部分
   * http://pm2.keymetrics.io/docs/usage/application-declaration/
   */
  apps : [

    // First application
    {
      // 项目名称
      name      : 'wchat-sv',
      // 程序入口
      script    : 'server.js',
      env: {
        COMMON_VARIABLE: 'true'
      },
      env_production : {
        NODE_ENV: 'production'
      }
    },
    // 还可以配置第二个应用
    {
        // ... 
    }
  ],

  /**
   * Deployment section 部署部分
   * http://pm2.keymetrics.io/docs/usage/deployment/
   */
  deploy : {
    production : {
      // 因为pm2要登录到服务器(Server)中执行命令,所以要提供 name 和 host
      // 这里没有提供密码,也就是为什么要配置ssh免密码登录
      user : '',    // 服务器用户名
      port:39999,
      ssh_options: "StrictHostKeyChecking=no",
      host : '',    // 服务器地址
      // 服务器(Server)需要获取GitHub上的仓库
      // 所以要配置Deploy Keys
      ref  : 'origin/master',   // 仓库名称,没有更改过的话默认即可
      // Github上的仓库地址
      repo : 'git@github.com:XiomgMingCai/pm2-zidong-bushu.git',
      path : '/root/www/pm2-zidong-bushu', // 应用部署到服务器的路径
      // 在服务器上执行的脚本命令,会在从Github上获取到最新的版本后执行
      'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
    },
    dev : {
      user: "",(忽略)
	  host: "",(忽略)
      ref  : 'origin/master',
      repo : 'git@github.com:XiomgMingCai/pm2-zidong-bushu.git',
      path : '/root',
      'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env dev',
      env  : {
        NODE_ENV: 'dev'
      }
    }
  }
};


已经配置服务器免密登录还是要多次输入服务器密码? 怎么解决!

回到顶部