George
т.е. хелсчек не дает healthy, пока миграция не отработает. Далее миграция делает файл-флаг, который хелсчек проверяет и потом еще слип 10
George
чтобы следующий контейнер успел стартовать
George
но вообще это нихера не продакшн решение. Аж страшно жить
George
George
хоть на что-то я пригодился )
Andor
да мне и не в прод, мне тесты запустить
Andor
я ж сказал: пхпюнит
George
для тестов окей. Зато красиво. Миграция отработала - ты даже увидишь, что контейнер был хелзи - прикинь!
Andor
я не настолько безумен чтобы docker-compose в прод пихать
George
единственный косяк - это только в докер-компоуз 2.7
George
т.е. на сворме это не работает от слова совсем
Andor
мне это норм
George
👍вперед, мочи!
Andor
Andor
ок, второй вопрос
Andor
я думал что если указать несколько докер-композ-файлов контент мёржится
Andor
то есть я могу например сказать ему -f docker-compose.yaml -f docker-compose-tmpfs.yaml и во втором файле сказать что волюмы для мускуля должны быть в тмпфс и оно все сервисы отнаследует
Andor
что-то не вышло у меня, сказал что нечего запускать
Andor
я что-то понял не так или что-то делают не так7
Rainbow
может проще ansible использовать, раз сценарии не самые простые?
Andor
простые, простые
Andor
вот мне ещё ансиболи не хватало
Andor
нафиг мне ансиболь в CI? :)
Andor
(не CD)
Andor
ну вот у меня сценарий же простой - поправить волюм мускуля на тмпфс при запуске тестов
Andor
а, походу надо просто сервисы перечислить будет
Andor
после обеда попробую
George
George
но не совсем
George
вольюмы, по-моему, должны быть в каждом
Andor
Ну вот сказано в доке типа "если сервис указан в обоих то мёржит"
Andor
Так что пустые сервисы впишу во втором файле и попробую
George
ну, смотри, у нас была идея какая
Andor
George
1. в docker-compose.base.yaml - база постгрес
2. в docker-compose.service-dev.yaml - дев версия сервиса
3. в docker-compose.test.yaml - тесты
George
и все нормально работает
George
перекрывающихся сервисов не было, ибо было не нужно )))))
George
не должно быть пустых файлов
George
если не веришь, то docker-compose config -f first.yaml -f second.yaml … и смотрите выхлоп
Rainbow
Копипастишь между ними?
ну да, это не так больно, чем позже разбирать адище if. Раз в пол кода можно и копипастить.
Andor
Andor
Andor
Ну не, анчоры это сложно
Andor
:)
Andor
Andrey
привет, ребят
Andrey
что можно сделать с вольюмом при перемещении сервиса с одной машины на другую? есть бестпрактики?
Andrey
чтобы данные за сервисом пошли
Andor
зависит от типа волюма
Andrey
ну типа нет, надо что то придумать чтобы это все было бесшовно
Andor
зависит от типа волюма
Andrey
спасибо
Andor
если например сетевой, то ничего, просто перемонтировать
Rainbow
nfs самое простое
Andor
а если локальный, то надо как-то упаковывать и мигрировать
Rainbow
Andrey
данные базы
Andor
репликацией не получается?
Jürgen
данные базы
Настроить репликацию на новый сервер
Andrey
условно надо переместить слэйва на другую машину
Andor
@gecube @alexesDev
$ cat docker-compose-tmpfs.yaml
version: '3.2'
services:
mysql: {}
redis: {}
composer: {}
phpunit: {}
volumes:
mysql-data:
driver_opts:
type: tmpfs
device: tmpfsработает :)
Rainbow
Andor
но оно сможет запускать только сервисы из второго файла
Andor
остальное видимо мёржится
Andor
странная логика, ну да ладно
George
хз
George
мы чтобы сохранить порядок запуска делали так
docker-compose -f first.yaml up -d
docker-compose -f first.yaml -f tests.yaml —abort-on-container-exit
George
и, да, я накосячил с параметрами
George
George
а docker-compose -f ololo.yaml -f ololo2.yaml config
George
но ты мог и сам догадаться 🙂
Andor
гм
Andor
не смог! %)
George
ну, сорян, пора развивать фантазию ))))
Andor
с хелсчеками пока не заморачивался