You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Capistrano部署Git仓库子目录中的Rails应用

配置Capistrano部署不在Git根目录的Rails应用

嘿,这个场景我碰到过好多次了,Capistrano其实专门留了配置项来处理这种子目录部署的需求,跟着下面的步骤来就能搞定:

  • 核心配置:指定仓库子目录
    在你的config/deploy.rb(推荐放在这里更清晰)中添加这一行代码:

    set :repo_tree, 'Server/API'
    

    这个配置会告诉Capistrano:克隆完Git仓库后,只把Server/API目录下的内容当作你的Rails应用根目录来处理,后续的所有部署操作(比如安装依赖、预编译资产、启动服务器)都会基于这个子目录执行。

  • 验证路径配置(可选但稳妥)
    如果你配置了linked_files或linked_dirs(比如常用的config/database.yml、log、tmp/pids),不用特意修改它们的路径——因为:repo_tree会自动让Capistrano把工作目录切换到Server/API下,原来的相对路径依然有效。

  • 测试部署前的检查
    先运行这个命令验证配置是否正确:

    cap production deploy:check
    

    这个命令会检查Capistrano能否正确找到子目录里的Rails核心文件(比如Gemfile、config.ru),如果没有报错,就可以放心执行正式部署了:

    cap production deploy
    

补充个小提示:这个配置在Capistrano 3.x及以上版本都能完美运行,要是你有自定义的部署任务,记得用Capistrano提供的release_path变量来引用应用目录,它会自动适配:repo_tree的设置,避免硬编码路径踩坑。

内容的提问来源于stack exchange,提问作者Alexis CHEVREUX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:37