LoginSignup
11
11

More than 5 years have passed since last update.

node-foremanで環境変数をファイルから読み込んでコマンド実行

Last updated at Posted at 2016-02-15

背景

サーバーアプリケーションでパスワード等の秘密情報を使う際に、ソースコード上に書いて公開リポジトリで管理すると秘密情報が暴露します。
代わりに、環境変数に秘密情報を設定し、サーバーアプリケーション内で環境変数を読みとる方法があります。

この方法では、開発環境で起動する際に環境変数で設定するのが面倒です。

例えばsyamoと言うアプリケーションは、次のコマンドで起動します。

env CHATWORK_TOKEN=XXX GITLAB_URL=YYY GITLAB_TOKEN=ZZZ npm start

(fishshellの環境変数の書き方です)

これを毎回実行するのは面倒です。

node-foremanを使う

node-foremanを使うと.envファイルから環境変数を読み取って、コマンドを実行できます。

インストール

npm install --save-dev foreman

開発環境で使う(ことをpackage.jsonに保存する)ため--save-devをつけます。

.envファイルの作成

iniファイルのような形式で書きます。

CHATWORK_TOKEN=XXX
GITLAB_URL=YYY
GITLAB_TOKEN=ZZZ

リポジトリに追加しないために.gitignoreに追加します。

echo ".env" >> .gitignore

実行

node-foremanはrunコマンドで、任意のコマンドを実行できます。

node_modules/foreman/nf.js run npm start

npm script

package.jsonに起動スクリプトを追加します。

"scripts": {
  "start": "babel-node app.js",
  "test": "mocha --require espower-babel/guess -c",
  "watch": "nodemon --exec babel-node -- app.js",
  "dev": "nf run "babel-node app.js"
}

npm run devで実行できます。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11