シュッと開発日記

学んだことのアウトプット。ポートフォリオ作ってます。

CircleCIで.envファイルを使用する

CircleCIを始める時に

環境変数全部一つずつ登録するのめんどくさ…」 ってなったので、調べてみた。

手順

コマンドラインから自分の.envファイルと同じディレクトリで

base64 .env

とすれば、.envファイルをbase64エンコードしたものがechoされます。

base64って?」となり、調べてみると、

Base64は、データを64種類の印字可能な英数字のみを用いて、 それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。 (Wikipedia参照)

なるほど。これで改行なんかが入った.envファイルを一行にまとめて、CircleCIの環境変数に入れればいいわけですね。

これは公式サイトを見ればできます。

circleci.com

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を参照できるようになりました。

参考