web-dev-qa-db-ja.com

docker-composeを実行する場合、「volumes'type 'は必須のプロパティです」

私はdocker-compose.yamlがどのように機能するかを理解することを通して取り組んでいます。構成ファイル内にボリュームを定義し、それをローカルのマウントポイントにマウントしようとしています。基本的な.yamlを実行してボリュームをマウントしようとしています:

version: '3.2'
services:
      mydb:
        image: postgres
        volumes:
          - db-data:var/lib/postgres/data
        ports:
          - "5432:5432"
        volumes:
          - db-data:
          - driver: local

しかし、私が実行するとdocker-compose down、エラーが発生します:

$ docker-compose down
The Compose file '.\docker-compose.yml' is invalid because:
services.mydb.volumes 'type' is a required property
services.mydb.volumes 'type' is a required property

私はこれに不慣れであり、Dockerを使用する際の微妙な違いをすべて理解しています。私の問題は、インデントエラーか、拡張子を付けてバージョン番号を呼び出す方法のいずれかであると思いますが、エラーを理解できないようです。

2
user7298979

作成ファイルは空白を区別します(これはyamlフォーマットです)。作成ファイルには2つの異なるボリュームセクションがあります。1つはボリュームがインデントの最上位レベルで定義され、もう1つはボリュームがサービス内で使用される場所です。サービス内で両方を定義しようとしましたが、ボリュームの使用方法を定義するために2番目のボリュームセットが正しく定義されていません(そこにターゲットディレクトリが必要です)。以下はあなたが試したいものです:

version: '3.2'
services:
      mydb:
        image: postgres
        volumes:
          - db-data:var/lib/postgres/data
        ports:
          - "5432:5432"
volumes:
  db-data:
2
BMitch