サーバレスのサムネイル

サーバレス

設定ファイルや.envファイルなど、.gitignoreで除外したファイルをnowにだけアップする

公開日: 2019.6.17

アプリの設定ファイルやDBのID、パスワード情報など、gitでは管理したくないけど、now.shにだけは認識させたいケースがあります。そうした場合に、どのように対処すればいいのかをまとめました。

編集ノート:SERVERSUSでは、パートナーリンクからコミッションを得ています。コミッションが記事の意見や、サービスの評価に影響を与えることはありません。

通常通り、gitignoreで管理除外する

外部流出しては困る設定ファイル(今回は、仮にDBのログイン情報を記載した「config.json」というファイルとします)を.gitignoreに記載します。

config.json

これで、設定ファイルはローカルのみで保持されるようになります。

ちなみに、config.jsonの中身はこんな感じです。(MySQLを使っています)

{
  "db": {
    "host": "ホストIP",
    "port": "ホストポート",
    "user": "ログインID",
    "pass": "ログインパスワード",
    "database" : "データベース"
  }
}

configファイルをロードする時は、

const config = require('../config.json')

という感じで定数に呼び出してあげればOKです。

now.jsonにファイル転送設定を書く

続いて、now.shにだけ設定ファイルを転送するために、now.sh専用の設定ファイル「now.json」に下記のようにファイル転送設定を記載します。

{
  "files": ["config.json"]
}

これだけで、gitリモートブランチ経由の更新ではconfig.jsonがアップされませんが、「now」コマンドからデプロイする際には、.gitignoreで除外されたはずのconfig.jsonがしっかりとnowの本番にはアップロードされます。便利ですね。

now.jsonは、普通のjsonファイルなので、fileの変数は複数設定することもできますし、ディレクトリを設定することもできます。


人によっては、envを使ってたりしていて、「.git除外ファイルはどうやってデプロイするんだよ!」なんて思いますが、しっかりとそこは考えられていましたね。

無料でここまで使えるnow.sh、すごいです。

参考

files in now.json does not work correctly with .gitignore


価格は記載がある場合を除き、すべて税込みです。

関連キーワード

サーバレスの新着記事