В моем 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 Нет закрывающей кавычки
Как мне заставить это работать?