github actions で.envファイルを上書きする
はじめに
github actionsでビルド後、指定サーバにデプロイを行います。
.envファイルが指定サーバ毎に変更になります。
secretsに.envの内容を登録して、利用したいのですが、うまくいかず、試行錯誤しました。
TL;DR
方法1
.envの内容をbase64エンコードしてserectsに登録をして、actionのスクリプト内でbase64デコードをして利用する
openssl base64 -A -in .env.xxx -out .env.xxx.base64.txt
このファイルの内容をsecretsに登録する。
- name: Update .env file
run: |
echo "${{secrets.xxxxxx}}" | base64 --decode > .env
参考文献: https://stackoverflow.com/a/64452700
方法2
暗号化してリポジトリに保存をして、複合する鍵をsecretsにいれて利用する。
公式ドキュメントにありますが、Secrets自体がリポジトリで100件、サイズが64KBなど制限があります。これの代替案として、秘密情報を暗号化してリポジトリに保存をして利用するという方法です。
まとめ
手間として方法1も方法2も、.envファイルをエンコードOR暗号化する手間があるので変わらないです。
暗号化したファイルでも、リポジトリに登録するというのが精神衛生上よくないので、方法1が好きかな?
ただ、方法1だとオリジナルの.envファイルがsecretsの中なので、デプロイ先を確認しないといけないので、方法2の方がいいって人もいるでしょうね。
生の.envファイルが登録しても、きちんと利用できない理由がわからないです。
secretsは、ログに残らないように処理するために、構造化データは使わないでって注意書きがあるので、このあたりが原因な気がしています。
Author And Source
この問題について(github actions で.envファイルを上書きする), 我々は、より多くの情報をここで見つけました https://qiita.com/idani/items/4a61eedfacc39b6512f6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .