Я работаю через понимание того, как работает docker-compose.yaml. Я пытаюсь определить том внутри файла compose и монтировать его в точке монтирования локально. Я пытаюсь запустить простой .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. Я думаю, что моя проблема в том, что это либо ошибка отступа, либо как я вызываю номер версии с расширением, но я не могу понять эту ошибку.

1 ответ1

0

Файл compose чувствителен к пробелам (это форматирование yaml). В составном файле есть два разных раздела тома: один, в котором объем определен на верхнем уровне отступа, а другой, где том используется в службе. Вы попытались определить как внутри службы, так и второй набор томов определен неправильно для определения того, как использовать том (для этого нужен целевой каталог). Вот что вы хотите попробовать:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .