Shipit Node App with PM2

在上一篇中,已经将项目放置在 Remote Server 上了。

在如何启动时,我们有多个选择,现在,看下如何直接用 pm2 在目录下直接启动。

服务器上的目录如下:

1
2
3
4
5
6
7
.
|-- current -> releases/20170228072117
|-- releases
| |-- 20170228062744
| `-- 20170228072117
`-- shared
`-- config

配置

有了上面两个插件的配合,就省力了很多。

在项目中 config 下有两个文件,需要被忽略,所以这里通过 shipit-shared 来配置。

在这之前还有几个问题要被解决:

shiptit-shared

项目中有一些配置文件,里面会存有服务器,DB 的相关安全信息,而且这些信息是跟环境相关,也就是说在不同的环境,它的内容是不一样的。

shipit-shared 就是帮我们做这件事情的。

它可以,在 Remote Server 上建一个公共的目录,手工在里面建立起上述的文件。再在 shipitfile.js 中加入这些文件或目录的配置。

每次 deploy 时,就会自动的将这些文件或目录软链到 current 下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module.exports = function (shipit) {
require('shipit-deploy')(shipit);
require('shipit-shared')(shipit);
shipit.initConfig({
default: {
shared: {
overwrite: true,
files: [
'config/application.yml',
'config/database.yml'
],
}
}
});
};

shipit-pm2

如果项目是在代码发布完之后,直接通过 pm2 来启动的,那这个插件就很适合。

1
2
3
4
5
6
7
8
9
10
11
12
module.exports = function (shipit) {
require('shipit-deploy')(shipit);
require('shipit-pm2')(shipit);
shipit.initConfig({
default: {
pm2: {
json: '/data/repos/app-koa2boil/process.json'
}
}
});
};


REF::