Compose CLI 環境変数

Docker Compose コマンドラインでの挙動を、いくつかの環境変数で設定できます。

DOCKER_ で始まる環境変数は、Docker コマンドラインでの設定に使うだけでなく、 Docker Compose のコマンドラインでも同様に使います。 docker-machine を使う場合は、 eval "$(docker-machine env my-docker-vm)" コマンドによって、適切な値を環境変数に指定します(この例では、 my-docker-vm は作成する仮想マシン名です)。

注釈

環境変数のいくつかは 環境ファイル でも設定できます。

COMPOSE_PROJECT_NAME

プロジェクト名を設定します。このプロジェクト名としての値とサービス名が、起動するコンテナの名前に付けられます。たとえば、プロジェクト名は myapp で、 dbweb という2つのサービスがあるとすると、Compose は myapp_db_1myapp_web_1 という名前のコンテナを個々に起動します。

この設定はオプションです。 COMPOSE_PROJECT_NAME の指定が無ければ、デフォルトではプロジェクトがあるディレクトリ名をプロジェクト名として扱います。 -p コマンドラインのオプション もご覧ください。

COMPOSE_FILE

Compose ファイルのパスを指定します。指定が無ければ、Compose は現在のディレクトリ内で docker-compose.yml という名前のファイルを探します。このファイルが見つからなければ、見つかるまで継続して親ディレクトリを探します。

この値には、 パス区切り文字(path separator) ( Linux と macOS では : 、 Windows では ; )を使って、複数の Compose ファイルを指定できます。たとえば、 COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml とします。パス区切り文字は COMPOSE_PATH_SEPARATOR を使ってカスタマイズもできます。

COMPOSE_PROFILES

有効にしたいアクティブなプロファイルを指定します。 COMPOSE_PROFILES=frontenddocker-compose up を実行すると、プロファイル frontend のサービスと、プロファイルの指定がないサービスを起動します。

カンマ記号を区切りに使い、複数のプロファイルを指定できます。つまり、 COMPOSE_PROFILES=frontend,debug とは、 frontenddebug のプロファイルを有効化します。

compose/profile と、 --profile コマンドラインのオプション もご覧ください。

COMPOSE_API_VERSION

Docker API のリクエストをサポートしているのは、特定のバージョンを報告するクライアントだけです。 docker-compose を使う時に client and server don't have same version のエラーが出た場合は、この環境変数を使って回避できます。バージョンの値を、サーバのバージョンと一致するように指定します。

この値の設定が想定している場面とは、クライアントとサーバ間のバージョンが一致しなくても、一時的に実行が必要な場合に、その回避策として使うためです。たとえば、クライアントは更新したとしても、サーバの更新は後回しにしたい場合です。

この変数を設定して実行すると、適切な Docker 機能の妨げとなる不整合が分かっています。 Docker クライアントとサーバのバージョンに依存する機能は、確実に失敗します。そのため、この変数を使った実行とは、回避策としてのみの実行を意図したものであり、公式にサポートされません。

これを指定して実行中に問題が発生した場合は、サポートに問い合わせる前に、(クライアントやサーバのバージョンを)更新して設定を削除した後でも、問題が解決しないかどうかをご確認ください。

DOCKER_HOST

docker デーモンの URL を指定します。Docker クライアントでは、デフォルトは unix:///var/run/docker.sock です。

DOCKER_TLS_VERIFY

空の文字列以外で何かを指定した場合、 docker デーモンとの TLS 通信を有効にします。

DOCKER_CERT_PATH

TLS 認証で使う設定ファイル ca.pemcert.pemkey.pem のパスを指定します。デフォルトは ~/.docker です。

COMPOSE_HTTP_TIMEOUT

Docker デーモンに対するリクエストが固まった( ハング(hang) した)と Compose が判断する時間(秒)を指定します。デフォルトは 60 秒です。

COMPOSE_TLS_VERSION

docker デーモンとの TLS 通信に使う TLS バージョンを設定します。サポートしている値は TLSv1TLSv1_1TLSv1_2 です。

COMPOSE_CONVERT_WINDOWS_PATHS

ボリュームの定義でのパス指定を、 Windows 風から Unix 風に転換します。Windows 版の Docker Machine を使うユーザは、常に設定すべきでしょう。デフォルトは 0 です。サポートしている値は、有効化が true1 、無効化は false0 です。

COMPOSE_PATH_SEPARATOR

設定すると、この値を COMPOSE_FILE 環境変数でのパス区切り文字として使います。

COMPOSE_FORCE_WINDOWS_HOST

設定すると、ボリューム定義に 短い書式 を使う場合、UNIX ベースのシステム上で Compose を実行していたとしても、ホスト上のパスは Windows のパスとして想定します。サポートしている値は、有効化が true1 、無効化は false0 です。

COMPOSE_IGNORE_ORPHANS

設定すると、プロジェクト用に孤立したコンテナを検出しません。サポートしている値は、有効化が true1 、無効化は false0 です。

COMPOSE_PARALLEL_LIMIT

Compose が並列に実行できる処理数の上限を指定します。デフォルトの値は 64 です。 2 未満は指定できません。

COMPOSE_INTERACTIVE_NO_CLI

設定すると、Compose は Docker CLI を使っての双方向な runexec 操作を試みません。Windows 上の CLI で先述の処理が必要だとしても、このオプションは使えません。

COMPOSE_DOCKER_CLI_BUILD

イメージ構築に使う Compose の Python クライアントか、ネイティブな docker CLI の場所を市営します。デフォルトは、構築に docker CLI を使うので、構築の処理には BuildKit が使えます。

COMPOSE_DOCKER_CLI_BUILD=0 と指定すると、ネイティブな構築を無効化するため、内蔵の Python クライアントを使って構築します。

関連情報

参考

Compose CLI environment variables

https://docs.docker.com/compose/reference/envvars/