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

使用Kamal部署Rails 8时如何配置私有GitHub仓库访问令牌?

解决Kamal部署Rails 8应用时私有GitHub依赖的bundle install失败问题

要让Kamal和Docker在构建阶段访问私有GitHub仓库的依赖,你可以通过以下几种方式配置BUNDLE_GITHUB__COM环境变量:

方法一:使用项目根目录的.env文件

  1. 在项目根目录创建或编辑.env文件,添加以下内容:
    BUNDLE_GITHUB__COM=你的GitHub个人访问令牌:x-oauth-basic
    
    注意:令牌需要拥有repo权限,确保能拉取私有仓库代码。
  2. Kamal默认会加载这个文件中的环境变量,并自动传递给Docker构建流程,无需额外配置。

方法二:在Kamal部署配置中显式声明构建参数

如果需要更精细的控制,可在config/deploy.yml中配置构建参数:

build:
  args:
    BUNDLE_GITHUB__COM: ${BUNDLE_GITHUB__COM}

这种方式需要配合.env文件使用,避免将令牌硬编码到配置文件中。

方法三:确保Dockerfile兼容

你的Dockerfile无需特殊修改,只要bundle install步骤能读取到环境变量即可。示例bundle安装步骤:

RUN bundle install --without development test

Bundle会自动识别BUNDLE_GITHUB__COM变量,用它来完成私有仓库的拉取认证。

关键注意事项

  • 务必将.env文件加入.gitignore,绝对不要提交到版本控制,防止令牌泄露。
  • 个人访问令牌只申请必要的repo权限,最小化权限范围降低安全风险。
  • 确认令牌的持有者(个人或机器人账户)有权限访问目标私有GitHub仓库。

内容的提问来源于stack exchange,提问作者Pål Simen Ellingsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:42:05