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

推薦する

React構成サブルーティングの実装

1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...

Linux でファイルのユーザーとグループを変更する方法

Linux では、ファイルが作成されると、そのファイルの所有者はファイルを作成したユーザーになります...

CentOS VPS に SSH 経由で MySQL をインストールする方法

yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...

CSSトランジションは高さを変更することで要素を拡大したり縮小したりします。

一般的な開発ニーズとして、要素の一部を必要になるまで折りたたんでおきたいことが挙げられます。 Boo...

MySQL実行計画を学ぶ

目次1. 実施計画の概要2. 実行計画の実践id:選択タイプ:テーブル:タイプ:可能なキー:鍵:キー...

Docker ベースのよく使われる CentOS7 イメージの概要

目次1 Dockerをインストールする2 国内ミラーソースの設定3 中国語環境基本版Centos7イ...

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...

IDEA 2020.3.1 で Tomcat をデプロイし、最初の Web プロジェクトを作成するプロセスの詳細な説明

目次Tomcat の紹介Tomcat の展開Web プロジェクトの作成tomcatの設定プロジェクト...

Linux ユーザー グループと権限の概要

ユーザーグループLinux では、すべてのユーザーはグループに属する必要があり、Linux には次の...

MySQLシリーズ マルチテーブル結合クエリ92および99構文例詳細チュートリアル

目次1. デカルト積現象2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか? 2) ...

Nginx ロケーション設定(ロケーションのマッチング順序)の詳細な説明

ロケーションは「位置指定」を意味し、主にさまざまな位置指定のための URI に基づいています。これは...

goaccess を使用して nginx ログを分析する詳細な方法

最近、goaccess を使って nginx ログを分析したいのですが、nginx ログの設定形式が...

sqlalchemy に基づいて MySQL で追加、削除、変更、クエリ操作を実装する

需要シナリオ:上司は、クロ​​ーラーを使用してMySQLデータベースにデータを書き込んだり更新したり...

MySQL 入門 - SQL 実行プロセス

目次1. プロセス2. コアアーキテクチャ2.1 サーバー層の基本コンポーネントの紹介3. ステート...

HiveメタデータをMySQLに設定するプロセス全体

Hiveのインストールディレクトリで、confディレクトリに入り、hive-site.xmlファイル...