.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 .
- docker run コマンドで環境変数を指定する
docker run
コマンドを使用してコンテナを起動する際にも、-e
オプションで環境変数を指定できます。
zsh$ docker run -e "APP_ENV=production" myapp
この方法で、コンテナ起動時に直接環境変数をセットできます。
以上の方法を用いることで、.env
ファイルで設定した環境変数を Dockerfile
または Docker コンテナ内で利用することが可能です。
記事Article
もっと見る- article
【2025年2月28日最新】GPT PlusとOpenAI APIの料金比較!どちらを選ぶべき?【コスパ徹底解説】
- article
Dockerfile 内で定義するvolumeと docker-compose.yml で定義するvolumesの違いについて紹介
- article
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方