项目管理
添加新项目

项目名称 随意设置,主要用于区别不同项目,不是真实的应用目录。
环境 如果是同一个发布系统支持发布不同环境的应用,该字段可以用于区分环境,如果不同应用环境使用不同发布系统来发布则作用不大。
空间 作用不大,可以当做中文项目名来设置
发布方式 支持scp(rsync)发布和pm2 deploy两种发布方式
配置文件 使用文本的配置方式,主要是由于最开始使用pm2发布,其配置文件是json或js,所以沿用了文本的配置方式。
scp配置说明
{
"user": "root",
"host": ["10.11.12.13"],
"ref":"master",
"repo": "git@github.com/yuedun/zhuque.git",
"path": "/data/www/zhuque",
"preBuild" : "",
"build":"go build",
"preDeploy" : "echo '发布前置';",
"postDeploy" : "pm2 restart zheque;pm2 ls",
"rsyncArgs":"-u --delete --exclude '.git' --exclude '.env'"
}
user:用户名
host[]:主机地址
ref:分支
repo:仓库地址
path:项目部署路径,需要包含项目目录
preBuild:编译前置,在发布机上编译代码设置的环境变量,比如前端项目设置不同的环境变量使用不同的接口地址。
build:编译命令,例如:npm run build
preDeploy:发布前置,应用服务重启前设置环境变量等操作。
postDeploy:发布命令,例如:pm2 reload zhuque
rsyncArgs:rsync参数
常用rsync参数:
--exclude 排除不进行同步的文件,比如--exclude="*.iso"
--delete参数删除只存在于目标目录、不存在于源目标的文件,即保证目标目录是源目标的镜像。
如果想要排除指定的文件,即不删除某个文件,可以使用exclude指定,例如:--exclude '.env',会删除其他文件而不会删除.env文件。
pm2配置说明
js配置
module.exports = {
apps : [{
script: 'index.js',
watch: '.'
}],
deploy : {
production : {
user : 'SSH_USERNAME',
host : 'SSH_HOSTMACHINE',
ref : 'origin/master',
repo : 'GIT_REPOSITORY',
path : 'DESTINATION_PATH',
'pre-deploy-local': '',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production',
'pre-setup': 'npm config set registry https://registry.npm.taobao.org'
}
}
};
json配置
{
"apps" : [{
"name" : "HTTP-API",
"script" : "http.js"
}],
"deploy" : {
// "production" 是环境变量名
"production" : {
"user" : "ubuntu",
"host" : ["192.168.0.13"],
"ref" : "origin/master",
"repo" : "git@github.com:Username/repository.git",
"path" : "/var/www/my-repository",
"post-deploy" : "npm install; grunt dist"
},
}
}
选项名称
描述
类型
默认
key
SSH
密钥的路径
String
$HOME/.ssh
user
SSH
用户
String
host
SSH
主机
[String]
ssh_options
SSH
选项,不包括命令行标志,查看man ssh
String
,[String]
ref
GIT
的remote/branch
String
repo
GIT
的remote
String
path
服务器中的路径
String
pre-setup
1.远程机器拉代码之前
String
post-setup
2.远程服务器拉代码
String
pre-deploy-local
3.post-deploy前在宿主机上执行的命令
String
post-deploy
4.部署后执行
String
最后更新于
这有帮助吗?