dapp — утилита для сборки и деплоя контейнеров. Особенности работы

dapp — утилита от российской компании Флант , которая занимается внедрением devops-практик (kubernetes, ci/cd и всё такое, ну вы в курсе)
Подробное описание можно прочитать на Хабре, а я бы хотел остановиться на некоторых особенностях работы с ней при сборке образов (здесь и далее под образом подразумевается docker image)


На момент написания статьи актуальная версия dapp 0.36.*


В качестве примера для наглядности и понимания общей картины возьмём за основу немного урезанное содержимое dappfile.yaml из официальной документации

  • Если в dappfile.yaml описан только один образ, мы можем использовать тильду ~ для обозначения образа по-умолчанию
  • Если мы хотим указать в качестве зависимостей этапа сборки (stageDependencies) все файлы, которые добавляются в образ, используем астериск в кавычках "*"
  • При указании stageDependencies пути должны быть указаны относительные (относительно указанного в - add:)
  • Добавление файлов в образ командой git происходит между этапами beforeInstall и install, поэтому stageDependencies нет смысла задавать для beforeInstall, к тому же такая попытка приведёт к ошибке
  • Для директивы git можно указывать несколько - add: со своими stageDependencies для работы с разными каталогами
  • Для использования ansible переменных конструкцию с названием переменной и двойными фигурными скобками {{ }} надо дополнительно заключать в гравис, заключая уже это в ещё одни фигурные скобки с двойными кавычками — вспоминаем, что dapp написан на ruby
  • Чтобы с помощью ansible скопировать содержимое какого-либо файла в файл в образе, можно использовать функцию .Files.Get. Пути указываем относительно местоположение самого dappfile.yaml. Не забываем использовать indent, чтобы получить правильные отступы в yaml-файле, иначе получим ошибку

    Также за дополнительными полезностями в работе с dapp можно обратиться к официальному FAQ

Добавить комментарий

Ваш e-mail не будет опубликован.