Определение объема в docker -compose.yml, в чем разница между длинным синтаксисом и коротким синтаксисом? - PullRequest
0 голосов
/ 28 мая 2020

Вот мой docker-compose.yml.

version: "3.8"
services:
  redis:
    image: "redis:5.0.9-alpine"
    restart: "always"
    ports:
      - "6379:6379"
    command: ['redis-server', '--requirepass', 'tiger', '--save', '60 1', '--maxmemory', "1g"]
    volumes:
     # Long Syntax
      - type: volume
        source: redis-data
        target: /data/
     # Short Syntax
     #- "redis-data:/data/"

networks:
  default:
    driver: bridge
volumes:
  redis-data:

Потом я запустил сервис docker-compose up -d, все ОК. Затем я изменил некоторое содержимое службы, например, порт хоста или версию образа. Затем я перезапускаю службу docker-compose up -d, если я использовал длинный синтаксис, произошла ошибка.

Recreating abc_redis_1 ... error

ERROR: for abc_redis_1  Cannot create container for service redis: Duplicate mount point: /data/

ERROR: for redis  Cannot create container for service redis: Duplicate mount point: /data/
ERROR: Encountered errors while bringing up the project.

Тогда вышеуказанной ошибки не было бы, если бы я использовал короткий синтаксис.

Версия ОС: CentOS Linux release 7.8.2003 Docker Версия: Docker version 19.03.8, build afacb8b Docker Составить версию: docker-compose version 1.25.5, build 8a1c60f6

...