Compose CLI 環境変数
Docker Compose コマンドラインの動作を設定するものとして、数種類の環境変数が利用できます。
DOCKER_
が先頭につく変数は、Docker コマンドラインクライアントの設定に用いられる環境変数と同じです。
docker-machine
を利用している場合は、eval "$(docker-machine env my-docker-vm)"
コマンドを実行することで、各環境変数に適切な値が設定されます。
(この例ではmy-docker-vm
が生成されているマシン名です。)
メモ
ここに示す環境変数の中には、環境ファイル を用いて設定できるものもあります。
COMPOSE_PROJECT_NAME
プロジェクト名を設定します。
この値は、コンテナーの起動時にサービス名の先頭につけられます。
たとえばプロジェクト名がmyapp
であり、2 つのサービスdb
とweb
があるとします。
Compose がコンテナーを起動したときにつける名前は、それぞれmyapp-db-1
、myapp-web-1
です。
この変数を設定するのは任意です。
変数を設定しなかった場合COMPOSE_PROJECT_NAME
のデフォルトは、プロジェクトディレクトリのbasename
となります。
コマンドラインオプション の-p
も参照してください。
COMPOSE_FILE
Compose ファイルへのパスを指定します。
指定されなかった場合、Compose はカレントディレクトリ内のdocker-compose.yml
というファイルを探します。
そしてファイルが見つからなければ、この名前のファイルを見つけるまで親ディレクトリを順にたどって探します。
この変数は複数の Compose ファイルの指定をサポートしています。
複数のパスはセパレーターで区切ります(パスセパレーターは Linux や macOS では :
、Windows では ;
)。
たとえばCOMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml
とします。
パスセパレーターはCOMPOSE_PATH_SEPARATOR
を使って変更することもできます。
コマンドラインオプション-f
も参照してください。
COMPOSE_PROFILES
有効にしたいプロファイルを複数指定します。
COMPOSE_PROFILES=frontend
を指定してdocker-compose up
を実行すると、プロファイルfrontend
を持ったサービスと、このプロファイルを持たないサービスが起動されます。
複数のプロファイルを指定する場合は、プロファイルをカンマで区切った一覧として指定します。
たとえばCOMPOSE_PROFILES=frontend,debug
とすると、プロファイルfrontend
とdebug
が有効になります。
Compose でのプロファイル利用 や コマンドラインオプション の--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.pem
, cert.pem
, key.pem
のパスを設定します。
デフォルトは~/.docker
です。
COMPOSE_HTTP_TIMEOUT
Docker デーモンへの処理要求にあたって、Compose の処理は失敗していなくても、デーモンをハングアップさせる所要時間を(秒単位で)指定します。 デフォルトは 60 秒です。
COMPOSE_TLS_VERSION
docker
デーモンとの TLS 通信に用いられる TLS バージョンを指定します。
デフォルトは TLSv1
です。
対応する値は TLSv1
, TLSv1_1
, TLSv1_2
です。
COMPOSE_CONVERT_WINDOWS_PATHS
ボリュームの定義において、パスの記述に関して Windows 書式と Unix 書式の変換を有効にします。
Windows 上の Docker Machine を利用するユーザーは、必ず本変数を設定しておきます。
デフォルトは0
です。
対応する値はtrue
または1
が有効を意味し、false
または0
が無効を意味します。
COMPOSE_PATH_SEPARATOR
これが設定されている場合に、環境変数COMPOSE_FILE
の設定値に対して、パスを区切る文字として本変数の設定値を用います。
COMPOSE_FORCE_WINDOWS_HOST
これが設定されていて、短い文法 によってボリュームの宣言を行うと、ホストのパスは Windows パスとして扱われます。
Compose が UNIX ベースのシステム上で動作していても、そのようになります。
対応する値はtrue
または1
が有効を意味し、またfalse
または0
が無効を意味します。
COMPOSE_IGNORE_ORPHANS
これが設定されている場合に、そのプロジェクト内で孤立したコンテナーを Compose が検出しないようにします。
対応する値はtrue
または1
が有効を意味し、false
または0
が無効を意味します。
COMPOSE_PARALLEL_LIMIT
Compose が並列で処理する操作数を設定します。
デフォルト値は64
です。
2
よりも小さな値を設定することはできません。
COMPOSE_INTERACTIVE_NO_CLI
これが設定されている場合に、Docker CLI のrun
やexec
の処理において Compose は対話的処理を行わないようにします。
前もって操作を定めておく必要がある Windows の CLI では、このオプションを利用することはできません。
対応する値はtrue
または1
が有効を意味し、false
または0
が無効を意味します。
COMPOSE_DOCKER_CLI_BUILD
イメージをビルドする際に Compose Python クライアントを利用するか、ネイティブ Docker CLI を利用するかを設定します。
Compose のビルド処理は、デフォルトで docker
CLI を用います。
その場合には BuildKit を用いたビルド処理が可能です。
COMPOSE_DOCKER_CLI_BUILD=0
に設定すればネイティブビルドが無効になり、ビルトインの Python クライアントが用いられます。