to post messages and comments.

← All posts tagged docker

Эта вся контейнеризация, конечно, очередной технологический рывок вперёд, но никакой культуры пока что нет. Всё на том уровне, на котором было программирование в начале 1980: собрал, сколотил что-то, как-то скомпилилось, кому-то на дискете унёс, ещё до начала массового использования VCS. Одно радует, что сейчас побыстрее прогресс идёт, и что раньше занимало лет десять, сейчас за 2-3 года наступит.

Ещё намедни дичился с метода компиляции докера (для компиляции нужен докер, через него ставится всё окружение и компилится), а сегодня считаю, что именно так и надо делать везде и всегда. Просто повозился немного с контейнерами, понял их преимущество над обычным унылым линуксом.

Чтобы скомпилить докер из исподников, ставится отдельный докер-контейнер с нужными тулзами. С одной стороны получается минимум настройки рабочей системы, а с другой стороны какой-то ад. Где-то мы свернули не туда.

Наделал шесть контейнеров, конфиги софта в них генерятся через bootsmann из одного общего конфига, где список IP-адресов, портов, логинов-паролей. Раскидал их по разным серверам, запустил, наступила благодать. Очень хорошо это всё.

Спрашивал про темплейтный движок, чтобы переписывать конфиги в докере перед стартом, ничего путного не подсказали. Написал свой на Go (докер, хуле). Если кому надо, то могу сорцы выложить на гитхуп.

А есть какой-нибудь простой темплейтный движок, чтобы можно было конфиги править при старте контейнера? Например, стартую контейнер, передаю в него файл с key-value параметрами, в контейнере запускается скрипт, правит все нужные конфиги в соответствие с этими параметрами и стартует supervisord. Вопрос конкретно в том, как сделать из файла с kv-параметрами и заданными файлами с темплейтами конфигов, сами конфиги. Написать с помощью sed это конечно можно, но может есть какие-то стандартные готовые решения?

Вот одного не могу понять: каким образом осуществлять деплой софта в контейнере, чтобы не было разрывов в обслуживании? Как туда внутрь накатывать новый софт, и чтобы данные (на диске и в памяти) не пропадали?