web-dev-qa-db-ja.com

Docker composeが$ PWD環境変数を見つけられない

これが私のdocker-composeです:

version: '2'
services:
  couchpotato:
    build:
        context: ./couchpotato
        dockerfile: Dockerfile
    ports:
     - 5050:5050
    volumes:
     - "${PWD}/couchpotato/data:/home/CouchPotato/data/"
     - "${PWD}/couchpotato/config:/home/CouchPotato/config/"

シェル内でdocker-compose.ymlのディレクトリで実行すると、次の結果が得られます。

WARNING: The PWD variable is not set. Defaulting to a blank string.

構成は空のPWDで始まります。

ここに見られるように、ファイルにエラーは表示されません: https://docs.docker.com/compose/environment-variables/

17
user6791424

これには${PWD}は必要ありません。パスを相対にすると、composeはそれを拡張します(composeパスとdocker runによって処理されるパスの大きな違いの1つ)。

version: '2'
services:
  couchpotato:
    build:
        context: ./couchpotato
        dockerfile: Dockerfile
    ports:
     - 5050:5050
    volumes:
     - "./couchpotato/data:/home/CouchPotato/data/"
     - "./couchpotato/config:/home/CouchPotato/config/"

Composeがこの変数を認識しない理由については、シェルに依存します。 Composeは、エクスポートされた環境変数、.envファイルの内容、およびdocker-composeコマンドのコマンドラインフラグを探します。これらのそれぞれが変数に対して空になると、その警告が表示されます。

20
BMitch