Dockerfile安装Ruby&Rails时Gem装Bundler遇SSL证书错误求助
Ruby 2.6.3 + Rails 6.1.3.2 Docker安装SSL错误修复方案
针对gem install bundler -v 2.3.26时出现的SSL验证失败、无法从rubygems.org下载数据的问题,提供三种可行修复方案:
方案1:添加GlobalSign根证书到系统信任存储
直接在Dockerfile中下载并配置指定证书:
# 下载GlobalSign Root CA - R3证书到证书目录 RUN curl -o /usr/local/share/ca-certificates/globalsign-root-r3.crt https://secure.globalsign.com/cacert/gsr3.crt # 更新系统证书信任列表 RUN update-ca-certificates
执行完上述步骤后,再运行gem install bundler -v 2.3.26即可正常通过SSL验证。
方案2:临时跳过SSL验证(仅测试环境用)
如果只是临时测试,可在gem安装命令中添加跳过SSL验证的参数,但生产环境绝对禁止使用,存在安全风险:
RUN gem install bundler -v 2.3.26 --no-ssl-verify
方案3:更换国内RubyGems镜像(推荐国内环境使用)
替换为国内镜像源,既解决SSL问题又能大幅提升安装速度:
# 替换默认源为国内镜像 RUN gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/ # 正常安装bundler RUN gem install bundler -v 2.3.26
完整Dockerfile示例(以方案1为例)
FROM ruby:2.6.3 # 安装基础依赖 RUN apt-get update && apt-get install -y \ build-essential \ libpq-dev \ nodejs \ && rm -rf /var/lib/apt/lists/* # 添加GlobalSign根证书 RUN curl -o /usr/local/share/ca-certificates/globalsign-root-r3.crt https://secure.globalsign.com/cacert/gsr3.crt RUN update-ca-certificates # 安装bundler和指定版本Rails RUN gem install bundler -v 2.3.26 RUN gem install rails -v 6.1.3.2 # 设置项目工作目录 WORKDIR /app
内容的提问来源于stack exchange,提问作者AnhHaiNewton
相关产品推荐
相关产品推荐

