Используйте встроенные комментарии в команде docker-compose - PullRequest
1 голос
/ 26 сентября 2019

В моем docker-compose.yml мне нужно использовать очень длинный command, и я хочу это задокументировать.Это нелегко сделать, но у меня есть обходной путь, который ПОЧТИ работает.

foo:                                    # valid comment
  image: foo:latest                     # valid comment
  command: >
           printf '
           something                    # explanation for this command
           --arg                        # explanation for this switch
           --a                          # explanation
           --b hello
           -c                           # this does...
           --d spam                     # don't use this when...
           #some notes
           --e ham                      # hmmm
           --eggs                       # explanation
           ' |grep -v ^[[:space:]]*$ |grep -v ^# |cut -d# -f1   # valid comment
  restart: always                       # valid comment

Таким образом, каждая команда и переключатель могут быть прокомментированы.

Bash:

  • printf ' ... ' печатает все содержимое в виде текста для запуска в виде команды
  • grep -v ^[[:space:]]*$ игнорирует первую пустую строку
  • grep -v ^# игнорирует строки комментариев
  • cut -d# -f1 извлекает встроенные комментарии из каждой строки

Этот трюк отлично работает в оболочке!

Однако docker-compose up говорит:

ОШИБКА: неверный формат интерполяции для опции «команда» в сервисе «foo»: «printf» что-то ...

Если я экранирую $ как $$, он говорит:

ОШИБКА: для foo Нет закрывающей кавычки

Как мне заставить это работать?

1 Ответ

2 голосов
/ 26 сентября 2019

Вот лучший способ.Документы command не показывают его, но я думаю, что это стандартный YAML, поэтому он разрешен.

foo:                               # valid comment
  image: foo:latest                # valid comment
  command:
    - something                    # explanation for this command
    - --arg                        # explanation for this switch
    - --a                          # explanation
    - --b hello
    - -c                           # this does...
    - --d spam                     # don't use this when...
    #some notes
    - --e ham                      # hmmm
    - --eggs                       # explanation
  restart: always                  # valid comment
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...