Если массив томов между сервисами одинаков, вы можете сделать это:
version: '3.4'
services:
webserver:
volumes: &volumes
- one:one
- two:two
node:
volumes: *volumes
Если вы хотите расширить массив и добавить к нему элементы в некоторых службах, это не поддерживается в YAML, как указано этой проблемой GitHub и этим вопросом StackOverflow .
Возможно, чтобы дать вам другой подход для рассмотрения (хотя я не уверен, что это будет полезно для вашего случая использования):
Во многих моих докерских композициях я определяю «базовый» сервис, а затем я могу наследовать некоторые атрибуты этого сервиса другими сервисами, используя слияние YAML. Рассмотрим этот пример:
version: '3'
services:
bash:
build: .
entrypoint: /bin/bash
<<: &default
image: dannyben/borg-client
volumes:
- one:one
- two:two
init:
<<: *default
command: init -e repokey-blake2
backup:
<<: *default
command: create --stats --progress ::initial-backup /borg/source
Используя этот подход, я могу создавать сложные файлы docker-compose, выраженные в очень удобочитаемой форме.