Introduction
Rails 5.2.2から登場したcredentialsさん。
通常、rails credentials:edit EDITOR="vim"
のような感じで編集ができるのですが、Rails on Dockerの場合で躓いちゃったのでメモを残しておきます。
1. Dockerでvimをインストール
vim
でなくても良いですが、Dockerイメージにお好きなエディタをインストールします。
例えばRubyの公式イメージをベースにする場合は、Debianをベースに作られているはずなので、apt-get install
でインストールできます。(alpineベースだとapk add
だったり。この辺りはお使いのベースイメージに合わせて)
/Dockerfile
apt-get install -y vim
追記したらvim
がインストールされたDockerイメージを作成するためにビルドします。
$ docker-compose build
2. EDITORを環境変数として指定
あとはrun
するときに起動コンテナに環境変数を渡す形でEDITOR=vim
を指定してあげます。
$ docker-compose run -e EDITOR=vim web rails credentials:edit
※Railsが動くコンテナのサービス名がweb
の前提です。
別解. docker-compose.yml
に環境変数を定義しておく
上の手順からわかる通り、環境変数EDITOR
をコンテナに渡しているだけなので、2
は以下の対処にすることも可能です。
docker-compose.yml
# ...
services:
web:
# ...
environment:
- EDITOR=vim
# ...
$ docker-compose run web rails credentials:edit
credentialsを何回も編集する場合はこちらの方が効率よさそう。
Conclusion
同じように躓いちゃった人の参考になれば嬉しいです!