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

使用Capistrano部署含Bun的Rails应用失败,求排查方案

Capistrano部署时找不到Bun的排查方案
  • Capistrano的shell环境没加载Bun路径
    手动装Bun时,它会把路径写到~/.bashrc或~/.profile里,但Capistrano默认用非交互式shell,不会自动加载这些配置文件。
    解决办法二选一:

    1. 全局配置:用sudo权限创建/etc/profile.d/bun.sh,内容写export PATH="$HOME/.bun/bin:$PATH",这样所有用户的shell都能读到Bun路径
    2. Capistrano配置:在deploy.rb里加一行set :default_env, { PATH: '$HOME/.bun/bin:$PATH' },强制部署时加载路径
  • 先确认Capistrano运行时的PATH是否包含Bun
    可以在部署配置里加个调试任务,直接看环境变量:

    namespace :debug do
      desc "打印环境变量和Bun路径"
      task :env do
        on roles(:app) do
          execute :echo, "$PATH"
          execute :which, "bun"
        end
      end
    end
    

    运行cap production debug:env,看输出里有没有~/.bun/bin,以及which bun能不能返回正确路径。如果找不到,说明路径确实没加载进去。

  • 检查Bun安装的权限问题
    确认deploy用户对~/.bun目录有读写权限,重新跑一遍安装命令curl -fsSL https://bun.sh/install | bash,看有没有权限报错,确保安装过程完全成功。

  • 核对cssbundling-rails的配置
    检查config/application.rb或config/initializers/assets.rb里有没有指定Bun作为CSS构建工具:

    Rails.application.config.css_bundler = :bun
    

    同时看package.json里的scripts部分,build:css命令是不是用了bun来执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:55:56