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 のヒントを共有する

推薦する

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

dockerを使用してdubboプロジェクトをデプロイする方法

1. まず、Springbootを使用して簡単なDubboテストプログラムを構築し、関連する依存関係...

RedisとMySQLの違いを簡単に説明してください

MySQL はディスクに保存される永続的なストレージであり、取得には一定の IO が伴うことはご存じ...

XMLとCSSスタイルの組み合わせ

学生.xml <?xml バージョン="1.0" エンコーディング=&qu...

qt.qpa.plugin の問題を解決: Ubuntu 18.04 の Qt で Qt プラットフォーム プラグイン「xcb」をロードできませんでした

問題の説明Qt5.15.0 をインストールした後、テスト ケースを実行するとエラーが表示されます。 ...

HTML入門チュートリアル HTMLタグ記号をすぐにマスター

補足<br />HTML について何も知らず、HTML の始め方がまだわからない場合は、...

ログインスライダー検証を実装するJavaScript

この記事では、ログインスライダー検証を実装するためのJavaScriptの具体的なコードを参考までに...

ドロップダウンリストのJavaScript実装

この記事の例では、ドロップダウンリストを実装するためのJavaScriptの具体的なコードを参考まで...

ネイティブJSで禁止すべきメソッドの記述

目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...

W3C チュートリアル (13): W3C WSDL アクティビティ

Web サービスは、アプリケーション間の通信に関係します。 WSDL は、XML ベースの Web ...

小さなプログラムが天井に張り付いてしまう問題を完璧に解決するためにposition:stickyを使用する方法

最近、あるプロジェクトのクライアントが、上部に 2 つのタブ メニューを配置することを要求しました。...

JavaScript のコールバック関数の理解と使用

目次概要コールバックまたは高階関数とは何ですか?コールバック関数はどのように機能しますか?コールバッ...

JS 1次元配列を3次元配列に変換する例

今日、CSDN の Q&A セクションで友人が質問をしているのを見ました。彼は 1 次元配列...

CSS シャドウ効果の比較: ドロップシャドウとボックスシャドウ

Drop-shadow と box-shadow はどちらも影効果(ハロー効果)のための CSS プ...

Centos8で静的IPを設定する方法の詳細な説明

CentOS 8をインストールした後、ネットワークを再起動すると次のエラーが表示されますエラーメッセ...