Обновить
0

Пользователь

Отправить сообщение
Мы работаем с Docker Swarm + Ceph. Все работает неплохо. Мы планируем перенести в Swarm больше как наших собственных, так и сторонних приложений. Но есть проблемка:

Допустим, я развернул 10 сторонних приложений в виде docker swarm stack'ов. Я делаю это с помощью команды Docker stack deploy. Отдаю ему файл docker-compose (часто, в свою очередь, составленный из нескольких файлов docker-compose-*.yml, скомпилированных через docker-compose config). Но, если я хочу что-то изменить в стеке, мне часто нужны мои исходные файлы compose. Существует ли какой-либо реестр для дескрипторов развертывания docker-compose? Как реестр образов Docker, но для дескрипторов docker-compose?

Одна из идей, которые приходят на ум, состоит в том, чтобы завести Git или Mercurial репозиторий с некоторой структурой каталогов для версионирования дескрипторов развёртывания. Эта идея выглядит интересной, но работает (полу)хорошо только для сторонних приложений. С нашими собственными приложениями это добавляет проблем, так как мы часто используем CI/CD (тот самый пресловутый дженкинс и развёртывание на стейджинг после того, как тесты пройдут успешно). И это будет означать, что нам нужно извлечь еще один репозиторий во время развертывания, заменить deployment-дескрипторы для наших приложений и закоммитить их. Это может быть проблематично, так как это может привести к merge конфликтам и т. д. Да и вытягивать целый репозиторий ради коммита одного файла…

Видел забавное решение, когда docker-compose.yml запаковывается в docker image FROM docker/compose (https://hub.docker.com/r/docker/compose/) и пушится в локальный докер регистри. Но это решение тоже не супер, т.к., по сути, никакого версионирования между docker-compose-файлами нет.

Чтобы не кормить троллей: речь не идёт о Dockerfile, имейджах, билд-дкриптах и т.д. Это всё хранится в нормальных git/HG вместе с исходниками самих приложений и спользуется во время CI. Чтобы нагляднее представить себе проблему: представьте, что у вас несколько десятков stack'ов запущено в swarm'e. И вот вам понадобилось, скажем, заменить volume-driver. Для этого нужно взять тот докер-композ файл, из которого каждый стэк разворачивался и поправить в нём конфигурацию томов. А где взять все эти десятки композов? Они деплоились разными людьми в разное время с разных хостов.

В идеале, решение, которое я ищу, должно обеспечить простой способ получить последние версии дескрипторов развертывания определенного (развернутого) стека и одновременно содержать их предыдущие версии. Кроме того, чтобы я мог легко обновлять дескрипторы развертывания — без вытягивания всего git/hg репозитория

Как вы, ребята, управляете своими файлами для создания докеров, если их слишком много?

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность