T-CREATOR

.env ファイルで設定した環境変数を Dockerfile で取得して利用するやり方を紹介

.env ファイルで設定した環境変数を Dockerfile で取得して利用するやり方を紹介

.env ファイルで設定した環境変数を Dockerfile で取得して利用するには、docker-compose.yml ファイルを使用するか、docker run コマンド時に環境変数を指定する方法が一般的です。

Dockerfile 自体で直接 .env ファイルを読み込むことはできませんが、ビルド時に環境変数をセットする方法があります。ここでは、それぞれの方法を説明します。

1. docker-compose.yml を使用する方法

docker-compose.yml ファイルを使うと、.env ファイルから環境変数を自動的に読み込むことができます。以下はその例です。

yaml# docker-compose.yml
version: '3.8'
services:
  app:
    build: .
    env_file:
      - .env

2. Dockerfile での ARG と ENV の使用

ビルド時に必要な環境変数を Dockerfile で使用するには、ARG 命令を使ってビルド引数を定義し、ENV 命令を使って実行時の環境変数を設定します。以下はその例です。

bash# Dockerfile
FROM ubuntu

# ビルド引数として定義
ARG APP_ENV
ENV APP_ENV=${APP_ENV}

# サンプルコマンド
RUN echo $APP_ENV

そして、ビルド時に --build-arg オプションを使って環境変数を渡します。

zsh$ docker build --build-arg APP_ENV=development -t myapp .
  1. docker run コマンドで環境変数を指定する docker run コマンドを使用してコンテナを起動する際にも、-e オプションで環境変数を指定できます。
zsh$ docker run -e "APP_ENV=production" myapp

この方法で、コンテナ起動時に直接環境変数をセットできます。

以上の方法を用いることで、.env ファイルで設定した環境変数を Dockerfile または Docker コンテナ内で利用することが可能です。

記事Article

もっと見る