如何设置 git 自动部署 3 台服务器 [repository, dev, prod]
How to setup git automatic deployment with 3 servers [repository, dev, prod]
最近我阅读了一些关于如何使用 Git 设置自动部署的笔记和教程 digital ocean。问题是所有解决方案都大约有 2 个服务器——测试服务器和实时服务器,测试服务器本身必须有存储库。
就我而言 - 我有 3 个服务器:
- 具有所有存储库的服务器 [Debian 6.0.8](使用 Gitosis)
- development/test 服务器 [ubuntu 14.04] 我的团队进行更改的地方
- live/prod 服务器 [ubuntu 14.04]
在这种情况下是否可以配置自动部署?
我想知道如何将我的生产服务器安装到存储库服务器或以某种方式在它们之间建立另一个连接。
也许有更好的方法?
结果比看起来容易得多。
- 首先,我将我的开发服务器安装到我的存储库服务器
sshfs user@dev_server:/path/to/www /mnt/dev_server -o ServerAliveInterval=60 -o allow_other
没有 allow_other 选项 "git push"
上存在权限被拒绝错误
- 比在 repositories/website.git/hooks 文件夹中我创建了脚本 "post-receive"
cat post-receive
#!/bin/sh
git --work-tree=/mnt/dev_serv/path/to/www/website --git-dir=.../repositories/website.git checkout -f
它就像一个魅力。现在我只是在寻找一些更安全的方法。此解决方案在本地到 dev_server.
之间进行了测试
主要目标是 运行 仅当某些内容从开发服务器(而非本地)推送到生产环境时才进行自动部署。
最近我阅读了一些关于如何使用 Git 设置自动部署的笔记和教程 digital ocean。问题是所有解决方案都大约有 2 个服务器——测试服务器和实时服务器,测试服务器本身必须有存储库。
就我而言 - 我有 3 个服务器:
- 具有所有存储库的服务器 [Debian 6.0.8](使用 Gitosis)
- development/test 服务器 [ubuntu 14.04] 我的团队进行更改的地方
- live/prod 服务器 [ubuntu 14.04]
在这种情况下是否可以配置自动部署?
我想知道如何将我的生产服务器安装到存储库服务器或以某种方式在它们之间建立另一个连接。
也许有更好的方法?
结果比看起来容易得多。
- 首先,我将我的开发服务器安装到我的存储库服务器
sshfs user@dev_server:/path/to/www /mnt/dev_server -o ServerAliveInterval=60 -o allow_other
没有 allow_other 选项 "git push"
上存在权限被拒绝错误- 比在 repositories/website.git/hooks 文件夹中我创建了脚本 "post-receive"
cat post-receive
#!/bin/sh git --work-tree=/mnt/dev_serv/path/to/www/website --git-dir=.../repositories/website.git checkout -f
它就像一个魅力。现在我只是在寻找一些更安全的方法。此解决方案在本地到 dev_server.
之间进行了测试主要目标是 运行 仅当某些内容从开发服务器(而非本地)推送到生产环境时才进行自动部署。