Что такое операторы & и * в синтаксисе docker -compose и как их использовать? - PullRequest
0 голосов
/ 17 июня 2020

Я заметил, что файл проекта docker -compose.yml содержит синтаксис, такой как &id001 и *id001, &id002 и *id002 в различных службах. Например:

version: '2.3'
services:
  nlp-servlet:

    ...some configs ...

    logging: &id001
      driver: json-file
      options:
        max-file: '10'
        max-size: 10m

  consul:
      ... some config ...
    logging: *id001

  redir:
       ... some config ...
    volumes:
      - redir_log:/usr/src/app/log
    logging: *id001

  tbgas-db:
     ... some config ...
     volumes:
        - tbgas_db:/var/lib/mysql
     logging: *id001

volumes:
  logdir: &id002
    driver: local
  redir_log: *id002
  tbgas_db: *id002

Я могу предположить, как работают id001 и id002, и я думаю, что они работают немного по-другому. Это точно?

Кроме того, где я могу найти документацию по этому типу синтаксиса? Как они называются?

1 Ответ

1 голос
/ 17 июня 2020

Это якоря YAML : & объявляет его как якорь, а * ссылается на него, заменяя его фактическим содержимым в якоре. Вы можете увидеть больше примеров его использования в этом разделе ссылки на файл compose.

Я бы подумал о том, чтобы переместить их в поля расширения, если это возможно, и дать им описательные имена, чтобы избежать путаницы.

...