🤢

Ruby On JetsでGithub PackagesのBundle Installに失敗する

2024/07/18に公開

現象

Ruby On Jets v6を使用したプロジェクトでbundle exec jets deployを実行し、codebuild上でbundle installが実行されるが以下のようなエラーが起きた。

ERROR: failed to solve: process "/bin/sh -c bundle install" did not complete successfully: exit code: 17
(以下省略)

プロジェクト内では複数プロジェクトで共通で使うコードをGithub PackagesにPrivate Gemとして公開している。bundle install時にこのgemをインストールするために、Dockefile内に環境変数BUNDLE_RUBYGEMS__PKG__GITHUB__COMを設定しているが、bundle installできていないようだった。

解決方法

以下の手順を実行すると正常にbundle installされ、デプロイできた。

  1. bundle exec jets set:env BUNDLE_RUBYGEMS__PKG__GITHUB__COM=hogehogeを実行して、SSMに値を設定する。
  2. config/jets/bootstrap.rb内に以下のような記述を追加する
    config/jets/bootstrap.rb
    Jets.bootstrap.configure do
        config.codebuild.project.env.vars = {
            BUNDLE_RUBYGEMS__PKG__GITHUB__COM: "SSM/project_name/#{ssm_env}/BUNDLE_RUBYGEMS__PKG__GITHUB__COM"
        }
    end
    
  3. 再度bundle exec jets deployを実行する

参考

https://docs.rubyonjets.com/docs/docker/dockerfile/private-repos/
https://docs.rubyonjets.com/docs/remote/private-repos/

Discussion