【发布时间】:2010-12-11 16:44:30
【问题描述】:
将 Catalyst 应用程序部署到生产服务器的好方法是什么?目前我只是在存储库的根目录中有一个 FastCGI 调度脚本,当我想更新服务器代码时,我将分支推送到服务器。这很简单,但并不完美。如果代码在服务器机器上的测试失败(例如由于不满足的依赖关系),我就会留下损坏的应用程序。您如何部署 Catalyst 应用程序?你有更好的方法吗?
【问题讨论】:
将 Catalyst 应用程序部署到生产服务器的好方法是什么?目前我只是在存储库的根目录中有一个 FastCGI 调度脚本,当我想更新服务器代码时,我将分支推送到服务器。这很简单,但并不完美。如果代码在服务器机器上的测试失败(例如由于不满足的依赖关系),我就会留下损坏的应用程序。您如何部署 Catalyst 应用程序?你有更好的方法吗?
【问题讨论】:
代理负载平衡器和两个触发器 fastcgi 应用程序的组合作为生产和暂存应用程序交替运行是您的最佳选择。您使用的是什么网络服务器?如果它恰好是 Lighttpd,请查看以下链接:
【讨论】:
为了处理不满足的依赖问题,我使用了一个脚本,将整个应用树运行svn export 到一个单独的目录,适当地设置环境,然后执行:
perl -MMyApp -e '{print "OK"}'
if [ $? -ne 0 ]
then
echo "MyApp failed compile, not installing."
exit 1
fi
这足以确保 dev 中安装的任何模块在回收 Apache 和/或 FastCGI 之前可用。成功后,导出的代码将移动到其最终位置。
【讨论】: