Compose CLI 環境変数

Docker Compose コマンドラインの動作を設定するものとして、数種類の環境変数が利用できます。

DOCKER_ が先頭につく変数は、Docker コマンドラインクライアントの設定に用いられる環境変数と同じです。docker-machine を利用している場合は、eval"$(docker-machineenvmy-docker-vm)" コマンドを実行することで、各環境変数に適切な値が設定されます。 (この例では my-docker-vm が生成されているマシン名です。)

注釈

ここに示す環境変数の中には、環境ファイル を用いて設定できるものもあります。

COMPOSE_PROJECT_NAME

プロジェクト名を設定します。 この値は、コンテナの起動時にサービス名の先頭につけられます。 たとえばプロジェクト名が myapp であり、2 つのサービス dbweb があるとします。 Compose がコンテナを起動したときにつける名前は、それぞれ myapp_db_1myapp_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_API_VERSION

Docker API は、クライアントが特定のバージョンを返す場合に限って、クライアントからのリクエストに応じます。docker-compose を利用する際に clientandserverdon'thavesameversion (クライアントとサーバのバージョンが一致しません)というエラーが発生した場合は、その回避策として、本環境変数を設定する方法があります。 サーバのバージョンに合致するようなバージョン値をこの変数に設定することです。

クライアントとサーバのバージョンが一致しないときであっても、実行が必要になる状況があります。 この変数を用いるのは、そういった状況を一時的に解決するためです。 具体的には、クライアントをアップグレードしたものの、サーバをまだアップグレードしていないような状況です。

この変数を設定したとしても、既知のバージョン不一致に該当していれば、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 と Docker Toolbox を利用するユーザーは、必ず本変数を設定しておきます。 デフォルトは 0 です。 また対応している値として true または 1 は有効を意味し、false または 0 は無効を意味します。

COMPOSE_PATH_SEPARATOR

これが設定されている場合に、環境変数 COMPOSE_FILE の設定値に対して、パスを区切る文字として本変数の設定値を用います。

関連情報

参考

Compose CLI environment variables

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