Docker部署Canvas LMS开发版遇dory加载错误求助
Canvas LMS开发版安装问题解决方法
1. 依赖检查语法错误(script/common/utils/common.sh: line 159)
这个错误是因为(( ))表达式传入了多行内容(多个换行的0),导致语法解析失败。解决步骤:
- 打开
script/common/utils/common.sh文件,定位到第159行,查看对应的变量赋值逻辑,通常是某个检查依赖的命令返回了多行结果。 - 将返回多行的命令结果转为单行,比如把类似
count=$(some_dependency_check_command)的代码修改为:
或者用统计行数的命令替代,比如count=$(some_dependency_check_command | tr '\n' ' ' | xargs echo)count=$(some_dependency_check_command | grep -c .),确保count变量是单行的数值或表达式。 - 保存修改后重新运行
./script/docker_dev_setup.sh。
2. Dory反向代理加载错误(LoadError)
这个问题是因为/usr/local/bin/dory脚本中指定的Gem路径与实际安装路径不匹配。解决方法任选其一:
方法一:修正脚本中的路径
- 先查找dory实际安装的bin目录路径:
输出示例:gem which dory/usr/local/lib/ruby/gems/3.1.0/gems/dory-1.2.0/lib/dory.rb,对应的bin路径就是/usr/local/lib/ruby/gems/3.1.0/gems/dory-1.2.0/bin/dory。 - 编辑
/usr/local/bin/dory文件,将第25行的路径替换为上面找到的实际bin路径。
方法二:重新安装dory
- 先卸载现有dory:
gem uninstall dory - 重新安装dory,确保安装过程无报错:
重新安装后生成的gem install dory/usr/local/bin/dory会自动匹配正确的Gem路径。
方法三:用Bundle管理dory
如果Canvas项目的Gemfile中包含dory依赖,直接通过bundle安装并调用:
bundle install bundle exec dory up
内容的提问来源于stack exchange,提问作者MJ-32
相关产品推荐
相关产品推荐

