我在我的服务器上使用git作为远程仓库,在收货后我定义我的工作树,托管文件和我的git-dir。
我在此应用程序上永远使用node.js,为了使大多数更改生效,我需要运行forever restart server.js
。必须通过ssh和cd登录到目录并手动执行它是一件痛苦的事。
所以我在想,是否可以在收件后发出命令,例如forever restart server.js
?
这是我的接收后文件
#!/bin/sh
git --work-tree=/var/www/example/public_html --git-dir=/var/repo/examp$
forever restart ../../../www/example/public_html/server.js
答案 0 :(得分:1)
我使用forever restart命令使用节点服务器文件的绝对路径。
#!/bin/sh
echo "Checking out files"
git --work-tree=/path/to/node/server --git- dir=/path/to/site.git checkout -f
# If app-server.js is running, restart--otherwise start
forever restart /path/to/node/server/app-server.js
编辑:根据Norman的规定,这应该在您服务器上的.git / hooks目录中。
答案 1 :(得分:0)
您是否可以在服务器中的.git/hooks
内定义post-receive挂钩?我想你可以在那里添加一个bash命令来永远重启。
答案 2 :(得分:0)
超级迟到的回复。
在package.json中,确保永远在deps中并添加一个开始和停止脚本。
"scripts": {
"start": "forever start index.js",
"stop": "forever stop index.js"
}
在你的钩子内,只需:
npm run stop
npm install
npm run start
通过git部署节点应用程序的更简单方法是使用这种工具: Piriku