docker-composeの.envファイルとは?知らないと損する便利な設定術

docker-composeで複数のサービスを連携して使うとき、「設定値をどこかにまとめておきたい」と思ったことはありませんか? そんなときに活躍するのが.envファイル。この記事では、インフラ初心者や開発者の方に向けて、.envファイルの仕組み・作り方・使いどころをやさしく解説していきます。

.envファイルとは?

.envファイルは、Docker Composeで使う環境変数を定義するための設定ファイルです。

ファイル名の先頭にドット(.)が付いているのは、Linux系の文化で「隠しファイル」として扱われるためです。lsコマンドでも -a オプションをつけないと表示されません。

小ネタですが、.envは「environment」の略。普段目立たない存在ですが、複数サービスが絡む開発現場では縁の下の力持ちとして活躍します。

.envファイルが必要な理由

たとえばdocker-compose.ymlに直接パスワードやポート番号を書いてしまうと、環境ごとに書き換えたり、他の人と共有しづらくなります。

そこで.envファイルの出番。設定値を外部ファイルに分けて記述することで、環境ごとの切り替えや再利用がしやすくなります。また、.envを.gitignoreに追加しておけば、秘密情報をうっかり公開する心配もありません。




.envファイルの書き方とdocker-composeへの適用

.envファイルは、以下のような形式で記述します。構文は「KEY=VALUE」だけ。コメント行には#を使えます。

そしてdocker-compose.ymlでは、次のように${変数名}の形で参照できます:

基本的にはdocker-composeは同ディレクトリの.envファイルを自動で読み込みます。

別名のファイルを使いたい場合は、以下のように--env-fileオプションで指定可能です:

この方法を使えば、環境に応じて設定ファイルを切り替えながら起動できます。

初心者でもわかる!.envファイルの利用シーン3選

  • ① 本番と開発で設定を分けたいとき
    開発時と本番環境でポート番号やパスワードを変えたい場合、それぞれ別の.envファイルを用意するのが基本です。

    たとえば以下のように、.env.dev.env.prodを作成します:

    .env.dev

    .env.prod

    docker-compose.ymlでは以下のように記述して、環境ごとに変数を読み込みます:

    実行時には環境に応じて--env-fileで読み分けます:

    このように環境ごとに.envファイルを分けることで、構成のミスや事故を防げます。

  • ② セキュリティ情報をコードに含めたくないとき
    パスワードやAPIキーなどの機密情報を直接ymlに書いてしまうのは非常に危険です。たとえば次のように記述し、
    docker-compose.yml内で環境変数として参照すれば、コードベースに直接書かずに済みます。
    さらに、.envファイルは.gitignoreで除外しておくことで、誤ってGitにアップロードされるのを防げます。
  • ③ チーム開発で設定を共有したいとき
    複数人で開発する場合、環境変数をそれぞれバラバラに管理するとトラブルのもとになります。

    そこで、以下のような.env.exampleを用意して共有するのが定番です:
    各メンバーはこのファイルをコピーして、自分用の.envファイルを作成します。
    こうすることで、構成の統一と誤設定の防止ができ、チーム内の混乱も少なくなります。

まとめ

  • .envファイルは、docker-composeの設定を柔軟かつ安全に管理する便利な方法
  • 環境の切り替え・構成の共通化・セキュリティ対策に効果的
  • 記述はシンプル、管理も簡単。初心者ほど早めに慣れておくべきツール

この記事では.envファイルの基本を紹介しましたが、さらに実践的な活用として、開発/本番で設定を切り替えるための構成も重要です。

次回は、環境ごとに.envファイルを分けて使い分ける方法や、docker-compose overrideとの連携について解説します。

 
 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。


人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村