CircleCIで.envファイルを使用する
CircleCIを始める時に
「環境変数全部一つずつ登録するのめんどくさ…」 ってなったので、調べてみた。
手順
コマンドラインから自分の.envファイルと同じディレクトリで
base64 .env
とすれば、.envファイルをbase64でエンコードしたものがechoされます。
「base64って?」となり、調べてみると、
Base64は、データを64種類の印字可能な英数字のみを用いて、 それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。 (Wikipedia参照)
なるほど。これで改行なんかが入った.envファイルを一行にまとめて、CircleCIの環境変数に入れればいいわけですね。
- CircleCIの画面から環境変数を登録する
これは公式サイトを見ればできます。
config.yml上で環境変数を直接書き込むような方法もあるようですが、私の場合APIのKEY等が入っていたため、素直にGUIから登録しました。
- config.yml内でbase64で書かれた元の.envをデコードして、CircleCIのコンテナ内の.envに書き込む
これはconfig.ymlで
run: name: Decode dotenv file command: echo ${ENV} | base64 --decode > /your/root/directory/.env
といった感じにします。
(/your/root/directory/
のところは自分の環境に合わせてください。)
これで、docker-composeやアプリケーションから.envを参照できるようになりました。