本文へスキップ

.envの解析・変換

.env Parser & Converter

.envファイルを解析して、JSON・YAML・シェルのexport・Docker・Kubernetesの形式に変換します。

`.env`ファイルを`dotenv`と同じ読み方で読みます。クォートの規則、`export`の接頭辞、`${VAR}`の展開まで処理したうえで、JSON・YAML・シェルのexport・Composeの`environment:`ブロック・KubernetesのConfigMapやSecret・整理された`.env`として出力し直します。

🔒 ブラウザの中だけで動きますdotenvenvconvertconfig

フラットなオブジェクト。たいていの設定ローダーと CI のシークレット取り込みが受け取る形です。

.env 入力

.env ファイルを置く

このタブの中で読みます。アップロードも保存もしません。

`export` は受け付けたうえで無視します。単一引用符の中は文字どおり、二重引用符は `\n` を展開し複数行にまたがれます。引用符のない値は、空白に続く `#` で終わります。

JSON

変数

8

読んだ行

8

展開した値

1

使い方

  1. .envを貼り付けるか、ドロップします

    このタブの中で読みます。アップロードもしませんし、保存もしません。コメント、空行、`export`の接頭辞はすべて理解します。

  2. 出力する形式を選びます

    選択欄の下に、それぞれが何のためのものかが書いてあります。ConfigMapとSecretは、リソース名と名前空間も一緒に尋ねます。

  3. 重複と、読めなかった行を確認します

    二度指定されたキーは、名前を挙げて知らせます。ここでは`dotenv`と同じく最後の指定が勝ちますが、すべてのローダーがそうするわけではありません。パースできなかった行は、番号とともに並べます。

  4. スクリーンショットを撮る前に伏せます

    伏せる切り替えを入れると、キーの名前が秘密らしく見える値が消えます。名前で判断しているので、保証ではなく心遣いだと思ってください。

よくある質問

`p@ss$word#x`が`#`のところで切れないのはなぜですか

シングルクォートの中にあり、そこでは何も特別ではないからです。クォートの無い値では、空白に続く`#`からがコメントなので、`abc#def`はハッシュを保ちますが`abc #def`は保ちません。ダブルクォートは`\n`と`${VAR}`を展開し、シングルクォートは何も展開しません。

展開は自分のシェルの環境変数にも届きますか

届きません。`${VAR}`は同じファイルの前の行だけを探します。このページは環境変数にアクセスできませんし、できたとしても読みません。上で定義されていない名前を参照した場合は、書かれたまま残ります。

Secretの出力をコミットしても大丈夫ですか

いけません。KubernetesのSecretはBase64で保存しますが、それは符号化であって暗号化ではありません。ファイルを読める人は、コマンド1つで値を読めます。コミットしても安全にしてくれるのは、Sealed SecretsやSOPS、あるいは外部の秘密の保管庫です。

複数行にわたる値はどうなりますか

ダブルクォートで囲んだ値は複数行にまたがることができ、1つの値として読まれます。PEMの秘密鍵が`.env`に入るのは、その仕組みです。JSONとYAMLへはそのまま渡り、シェルとdockerの出力ではシングルクォートで囲んで、改行を文字どおりに保ちます。

ここから渡せます

次の一手

このツールが出したものをそのまま受け取れる道具です。