将Ruby on Rails应用部署至Railway时遇bundler错误求助
解决Railway部署Rails应用时
bundler: not executable: bin/rails错误 核心修复步骤
修复bin目录文件可执行权限
Rails的binstubs文件(如bin/rails、bin/rake)必须拥有可执行权限,本地执行以下命令后重新提交代码:chmod +x bin/* git add bin/ git commit -m "Fix binstub executable permissions" git push本地开发时权限通常正常,但Git提交可能丢失权限配置,导致Railway拉取代码后无法执行相关文件。
调整Railway构建与启动命令
在项目的"Settings" -> "Build"面板中,设置构建命令为:bundle install && rake assets:precompile && rake db:migrate启动命令设置为:
bin/rails server -p $PORT确保启动时调用的是项目内的
bin/rails,而非全局命令。同步Gemfile.lock文件
本地执行bundle install更新Gemfile.lock,确保其与当前Ruby、Rails版本匹配,然后提交到仓库,避免因依赖版本不一致导致的执行问题。验证环境变量配置
确认已设置RAILS_ENV=production,且DATABASE_URL与Railway上创建的PostgreSQL实例正确关联,避免数据库配置问题间接引发启动失败。
额外排查方案
若以上步骤无效,可尝试重新生成binstubs:
rails app:update:bin chmod +x bin/* git add bin/ git commit -m "Regenerate binstubs" git push
这会生成适配当前Rails版本的全新binstub文件,解决旧文件的兼容性问题。
内容的提问来源于stack exchange,提问作者CaffieneSage
相关产品推荐
相关产品推荐

