What
自分用メモ
課題
private repository にあるGemを含んでいるRailsアプリを普通に Dockerfile
で普通に bundle install
すると、PrivateRepositryへのアクセス件がなくて落ちる
どうしようか
認証情報をContainer上に持っていくのも有りといえばありだが、リポジトリに含める必要があったりして面倒だし怪しい。
よって、手間はあるが、以下のようにした。
-
.gitignore
にvendor/cache
をついか -
bundle package --all
をdocker-compose build
前に実施しておく -
ADD vendor/cache __user_app_vendor/cache
をDockerfileに追加する
bundle package --all
で一通り全部 hoge.gem
としてキャッシュされる。
これを add してあげて、基本的にはここから参照してもらう。
Bundler側で勝手にNativeExtensionのGemは再ビルドしてくれる。
案内
えっ、PrivateGemがNativeExtension? ご、ごめん
なんでこんなことしてたの?
英語にはこういった情報結構あったけど、日本語になかったから。
あと http://haito.github.io/slide_spawn_dockerable_rails/ こういうLTを社内でするため。