Dockerfileで.envへ定義した環境変数を参照するオプションの使い方

.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 コンテナ内で利用することが可能です。
Dockerの記事Docker
- article
Cursorで何ができる?開発を加速する全機能徹底解説
- article
【早見表】TypeScriptでよく使うESLintルール一覧
- article
どっちを使うべき?TypeScriptのtype(型エイリアス)とinterfaceの違いと使い分け
- article
TypeScript 5.8 で強化された型推論!その裏で潜む 落とし穴と回避策
- article
【早見表】TypeScript Generics(ジェネリクス)の使用例と記法まとめ
- article
開発AIエディタ比較 Github Copilot vs Cursor vs Cline vs devin!それぞれの特徴や料金の違いを比較してみた