Git post-receive forever(node.js)?

时间:2015-01-27 12:51:10

标签: node.js git forever

我在我的服务器上使用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

3 个答案:

答案 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