部署Rails 7.1至Dokku时卡在Installing date 3.3.4 with native extensions
解决建议
检查Droplet资源配置:如果使用1核1G的低配Droplet,编译Ruby原生扩展时易因内存不足卡住。可临时升级到2核2G配置完成部署后再降级;或在Droplet上创建swap分区缓解压力:
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile调整date gem版本:date 3.3.4的原生扩展编译可能存在兼容性问题,在Gemfile中指定更低的稳定版本:
gem 'date', '3.3.3'执行
bundle update date后重新推送部署。若无需显式依赖该gem,可尝试移除Gemfile中的相关声明,使用Ruby自带的date库。获取详细部署日志:部署时添加环境变量强制输出详细日志:
git push dokku main VERBOSE=1同时在Droplet上执行以下命令查看部署相关日志:
dokku logs <你的应用名称> dokku builder-docker logs <你的应用名称>切换Dokku构建器:尝试将默认的docker builder切换为pack builder,它对Ruby应用的编译流程优化更友好:
dokku builder:set <你的应用名称> selected pack配置完成后重新推送部署。
手动编译排查:登录Droplet,克隆代码后手动执行
bundle install,直接观察终端输出定位问题。若缺少编译依赖,安装基础编译工具:sudo apt-get install -y build-essential libssl-dev libreadline-dev zlib1g-dev
内容的提问来源于stack exchange,提问作者user984621
相关产品推荐
相关产品推荐

