ローカル開発環境とCI/CD実行環境では必要な情報が異なり、手動でファイルを切り替えている状態です。
スマートに解決する方法はいくつか存在しますが、
環境変数を使うのがおすすめです。
マシンにキーバリューで文字列を覚えさせる事が可能で、
様々なプログラム・スクリプトがその環境変数の文字列を引き出す事が可能となります。
Node.jsはprocess.env.環境変数名
にアクセスすると環境変数を取得出来るので、
特定の環境変数を見張るようにプログラムを変更して、
特にそういう環境変数が存在しない、もしくはローカル用の文字列が設定されているのであればローカル開発環境用
CI/CD実行環境の環境変数が設定されているのであれば、CI/CDの実行に備えるみたいな仕組みを構築しましょう。
また、これはDocker等でも使われているように、
環境変数のDB_HOST
, DB_PORT
, DB_USER
, DB_PASSWORD
, DB_NAME
という風に
細かく環境変数を用意するというのも一般的です。
参考サイト等
その他の解決策
ぱっと思いつくのは
- Node.js 実行時の引数を使って管理
- コンフィグファイルを使う
前者の引数に関してはprocess.argv
でアクセス出来るので引っ張りましょう。
コマンドライン引数を管理するライブラリを使っても良いかもしれません。
参考記事: 10 Best Node.js CLI Arguments Libraries
後者のコンフィグファイルを使う方法。
AWSのS3をレンタルしていつでもCI/CD用の情報を引き出せるようにします。
(LAN環境内でMinIO等のストレージサーバを立ち上げて管理しても良いと思います)
CI/CDの環境下でNode.jsのプログラムを実行する前に
特定ディレクトリにコンフィグファイルを配置しておくようにして動作を制御します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。