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

OpenProject安装卡在RAILS_ENV="production" ./bin/rake assets:precompile命令

解决OpenProject Assets预编译卡在Angular构建阶段的方案

先排查系统资源(优先级最高)

  • 用top或htop实时监控内存/CPU占用:Angular生产环境构建对内存需求极高,服务器内存低于2GB时极易出现假死,甚至无法响应ctrl+c。
    • 临时救急方案:添加swap分区
      sudo fallocate -l 1G /swapfile
      sudo chmod 600 /swapfile
      sudo mkswap /swapfile
      sudo swapon /swapfile
      
    • 长期解决方案:升级服务器内存至2GB以上(符合OpenProject官方生产环境最低要求)
  • 检查磁盘剩余空间:执行df -h,构建过程会生成大量临时文件,磁盘满额会直接导致进程卡住。

单独验证Angular构建环节(OpenProject前端基于Angular开发)

OpenProject内嵌完整的Angular项目,修改angular.json完全合理,先脱离Rails流程单独测试:

  1. 定位前端目录:执行find . -name angular.json,通常位于项目根目录下的frontend/文件夹
  2. 进入目录执行生产环境构建:
    cd frontend
    npm run build:prod
    
    如果此步骤也卡住,针对性处理:
    • 调整angular.json的构建配置降低资源负载:
      • 临时关闭代码优化:"optimization": false
      • 禁用sourceMap生成:"sourceMap": false
      • 关闭并行构建:"parallel": false(多核服务器可能出现资源竞争问题)
    • 清理npm缓存并重装依赖:
      npm cache clean --force
      rm -rf node_modules package-lock.json
      npm install
      
    • 核对Node.js版本:OpenProject对Node版本有明确要求(如部分版本需16.x/18.x),用node -v确认,版本不符可通过nvm切换。

调整Rails预编译参数

  • 启用VERBOSE=true没问题,先在单独的Angular构建中添加--verbose确认可正常运行,再应用到Rails命令:
    RAILS_ENV="production" ./bin/rake assets:precompile VERBOSE=true
    
    详细日志能直接定位卡滞环节,避免盲目排查。
  • 先清理旧资产再执行预编译:
    RAILS_ENV="production" ./bin/rake assets:clean
    RAILS_ENV="production" ./bin/rake assets:precompile
    

强制终止卡住的进程

如果ctrl+c无法终止进程,直接通过进程ID强制杀死:

ps aux | grep rake
kill -9 <进程ID>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:20:16