Docker Compose で利用可能な環境変数の詳細な説明

Docker Compose で利用可能な環境変数の詳細な説明

Compose のいくつかの部分は、何らかの方法で環境変数を扱います。このチュートリアルは、必要な情報を見つけるのに役立ちます。

1. Composeファイル内の環境変数を置き換える

シェルの環境変数を使用して、Compose ファイルに値を入力できます。

ウェブ:
 画像: "webapp:${TAG}"

詳細については、Compose ファイル マニュアルの「変数の置換」セクションを参照してください。

2. コンテナ内の環境変数を設定する

docker run -e VARIABLE=VALUE ... を使用する場合と同様に、environment キーワードを使用してサービス コンテナーに環境変数を設定できます。

ウェブ:
 環境:
 -デバッグ=1

3. コンテナに環境変数を渡す

値を割り当てずにenvironmentキーワードを使用すると、 docker run -e VARIABLE ...使用する場合と同様に、シェル内の環境変数をサービス コンテナーに渡すことができます。

ウェブ:
 環境:
 -デバッグ

コンテナ内の DEBUG 変数の値は、Compose を実行するシェル内の同じ名前の変数から取得されます。

4. 「env_file」設定オプション

docker run --env-file=FILE ...使用する場合と同様に、 env_fileコマンドを使用して外部ファイルを使用して複数の環境変数をサービス コンテナーに渡すことができます。

ウェブ:
 環境変数:
 -web-variables.env

5. 'docker-compose run'を使用して環境変数を設定する

docker run -eコマンドと同様に、 docker-compose run -e使用して、1 回限りのコンテナーに環境変数を設定できます。

docker-compose 実行 -e DEBUG=1 web python console.py

変数を直接割り当てる代わりに、シェルから変数を渡すこともできます。

docker-compose 実行 -e DEBUG web python console.py

コンテナ内の DEBUG 変数の値は、Compose を実行するシェル内の同じ名前の変数から取得されます。

6. 「.env」ファイル

.env という名前の環境ファイル内の Compose ファイルで参照される環境変数、または Compose の設定に使用される環境変数のデフォルト値を設定できます。

$ 猫 .env
タグ=v1.5

$ cat docker-compose.yml
バージョン: '3'
サービス:
 ウェブ:
 画像: "webapp:${TAG}"

docker-compose upを実行すると、上記で定義したwebサービスはwebapp:v1.5イメージを使用します。アプリケーションの構成情報は、config コマンドを使用して端末に出力することで確認できます。

$ docker-compose 設定

バージョン: '3'
サービス:
 ウェブ:
 イメージ: 'webapp:v1.5'

シェル内の値は、 .envファイルで指定された値よりも優先されます。シェルで TAG を別の値に設定すると、その値がイメージで使用されます。

$ エクスポート TAG=v2.0
$ docker-compose 設定

バージョン: '3'
サービス:
 ウェブ:
 イメージ: 'webapp:v2.0'

複数のファイルで同じ環境変数を設定する場合、Compose が使用する値を選択する優先順位は次のとおりです。

  • ファイルを作成
  • 環境ファイル
  • Dockerファイル
  • 変数が定義されていません

次の例では、Environment ファイルと Compose ファイルの両方に同じ環境変数を設定します。

$ cat ./Docker/api/api.env
NODE_ENV=テスト

$ cat docker-compose.yml
バージョン: '3'
サービス:
 API:
 画像: 'node:6-alpine'
 環境変数:
  ./Docker/api/api.env を参照してください。
 環境:
  - NODE_ENV=本番

コンテナを実行する場合、Compose ファイルで定義された環境変数が優先されます。

$ docker-compose exec apiノード

プロセス.env.NODE_ENV
'生産'

Dockerfile内のARGまたはENV設定は、 environmentまたはenv_fileに Docker Compose エントリがない場合にのみ評価されます。

NodeJS コンテナの詳細

NODE_ENV=test node server.js のようにスクリプトを開始するための package.json エントリがある場合、これは docker-compose.yml ファイル内のすべての設定を上書きします。

7. 環境変数を使用してComposeを設定する

Docker Compose コマンドラインの動作を構成するために使用できる環境変数がいくつかあります。これらは COMPOSE_ または DOCKER_ で始まり、CLI 環境変数に記録されます。

8. リンクを介して環境変数を作成する

Compose ファイルの最初のバージョンで links オプションを使用すると、リンクごとに環境変数が作成されます。これらは、Link 環境変数リファレンスに記載されています。

ただし、これらの変数は非推奨となっています。代わりに、link はホストのエイリアスを作成します。

元のURL

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker Compose で環境変数を参照する方法の例
  • Docker での環境変数の使用とよくある問題の解決策

<<:  キャンバス操作プラグイン fabric.js の使い方を詳しく解説

>>:  MySQL のデバッグと最適化に関する 101 のヒントを共有する

推薦する

CentOS8 yum/dnfで国内ソースを設定する方法

CentOS 8 ではソフトウェア パッケージのインストール プログラムが変更され、yum 構成方法...

Docker イメージのプルとタグ操作 pull | tag

Fabric プロジェクトのソースコードを読み直してみたところ、Docker の部分でよくわからな...

CSSページ下部固定を実現する8つの方法の詳細な説明

ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...

MySQL トランザクション分離レベルとロックメカニズムの問題に関する深い理解

概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...

VMware vSphere6.0 サーバー仮想化の展開とインストールの図 (詳細な手順)

1. VMware vSphere 導入の早期計画のポイント1. vSphereの利点(わずかに)...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

ウェブページ印刷細線表+ページ印刷究極の戦略

最近、クライアントのために印刷していたとき、ページのヘッダーを印刷するのではなく、表の内容だけを印刷...

WeChatアプレットはシンプルなサイコロゲームを実装します

この記事では、サイコロゲームを実装するためのWeChatアプレットの具体的なコードを参考までに共有し...

IIS7 IIS8 リバースプロキシルールの記述、インストール、構成方法

目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...

Xampp サーバーで MySQL パスワードを変更する方法 (画像付き)

今日、PHP で作業しているときに、Xampp サーバーに付属の mysql データベースを使用する...

MySQL データベースのインデックス順序の詳細な説明

目次事件の原因解剖学ファイルの並べ替えファイルのソートが非常に遅いのですが、他に解決策はありますか?...

MySQL マスタースレーブレプリケーション構成プロセス

メインライブラリの構成1. MySQLを設定する vim /etc/my.cn # ファイルに次の内...

vue+element-uiはヘッドナビゲーションバーコンポーネントを実装します

この記事では、vue+element-uiでヘッドナビゲーションバーコンポーネントを実装するための具...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

MySQL マルチテーブルクエリの具体例

1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...