.env移植性事前チェック

.envファイルを貼り付け、Nodeのdotenv、Docker/Docker Compose、POSIXシェルで値の解釈が異なる、または失敗する箇所を確認します。実際の.envには秘密情報が含まれることが多いため、すべてブラウザー内で処理し、貼り付けた内容をアップロード、記録、送信しません。

ブラウザー内でローカルに処理します。ファイルがアップロードされることはありません。

使い方 ツール

  1. .envの内容または代表的な一部を貼り付けます。解析はブラウザー内で行われ、実際の秘密値はこのページから送信されません。
  2. 「.envファイルを確認」を選びます。
  3. 指摘された各行について、曖昧さ・リスクとdotenv、Docker Compose、POSIXシェルの差を確認します。
  4. 安全な書き換え案を適用します。閉じていない引用符、重複キー、展開参照、不正キー名は推測の方が危険なため手動対応として残します。

前提条件

出典と参考データ

方法論

各行をキー、未加工値、引用符の有無に分け、dotenv、Docker/Docker Compose、POSIXシェルで文書化された差を確認します:引用符なし空白や`#`、`export`接頭辞、閉じていない引用符、dotenv-expandを使わない場合の`$VAR`/`${VAR}`、最後の重複キーによる上書き、dotenvでは保持されシェルexportでは削除される末尾空白、POSIXシェル識別子として無効なキー名。値を引用する、末尾空白を削除する、exportを除去する場合のみ安全な書き換えを提案し、意図を推測しません。

計算例

別の変数を参照する値

入力項目: API_URL=${BASE_URL}/api

結果: 別途dotenv-expandを使わない限り、dotenvは`${BASE_URL}`を既定で展開せず文字列のままAPI_URLに入れます。一方POSIXシェルとDocker Composeは展開します。意図を推測できないため警告し、変換しません。

export接頭辞

入力項目: export APP_NAME=My Example App

結果: POSIXシェルでは有効ですが、dotenvとDocker Composeではexportの扱いが異なり、拒否またはキー名に含める場合があります。警告し、dotenvで一般的な単純形式にするため安全に接頭辞を削除します。値中の引用符なし空白は別の重大度の高い問題として指摘します。

重複キー

入力項目: TIMEOUT=30 TIMEOUT=60

結果: dotenvを含む多くのパーサーは最後の値だけを黙って保持し、TIMEOUT=30を破棄します。2回目の行を警告し、上書き元の行を示します。

実用的なアドバイス
よくある間違い

よくある質問

本物の秘密値をこのツールへ貼っても安全ですか?

解析はすべてブラウザー内で実行し、貼り付け内容をアップロード、記録、送信しません。このページ独自の分析・テレメトリーも追加しません。それでも、値を貼ることに不安がある場合は同じ形(長さ・特殊文字)を持つプレースホルダーを使ってください。検査するのは構文で、値の意味ではありません。

引用符なしの空白はエラーで末尾空白は情報扱いなのはなぜ?

値の途中の引用符なし空白はPOSIXシェルや厳格なDocker Composeパーサーで代入を壊す機能上の問題です。通常の値の後の末尾空白はdotenvが余分な文字を読むリスクですが、致命的であることは少なく安全に削除できます。

重複キーや不正キー名を修正しないのはなぜ?

重複したどちらの値が正しいか、不正キー名をどう直すかは意図を決める必要があります。推測してファイルを黙って変更するより問題を示して利用者に決めてもらいます。

`${BASE_URL}`はComposeで展開されるのにNode dotenvで文字列のままなのはなぜ?

Docker ComposeはCompose設定内の変数展開を行いますが、`dotenv`パッケージは既定で展開しません。Nodeで展開するには通常`dotenv-expand`などの追加パッケージが必要です。正確な動作はファイルと利用側で異なります。この事前チェックは構文上の移植性リスクを示すもので、Composeやdotenvを実行しません。

最終確認日: 2026-09-25

完全なシェルまたはDocker Composeパーサーではなく、一般的なKEY=value/コメント/空行形式と列挙した差だけを検査します。閉じていない引用符、展開参照、重複キーなど本当に曖昧な意図を判断せず、問題を報告します。

テーマとツールの設定、保存済みリストと最近使用したリストは、このブラウザー内にのみ保存されます。