@docker_ru

Страница 939 из 1375
Денис
26.12.2018
18:21:30
Всем привет. Есть докер-компоуз с сервисами. Стоит задача запустить их все, кроме одного. Потом уже в нужный момент дозапустить этот оставшийся контейнер. Не подскажите как можно это сделать?

inqfen
26.12.2018
18:22:15
А какая причина его тормозить?

Докер-композ не умеет в логику, потому или его в скрипт оборачивать, где явно такие сервисы запускаешь, а потом такой

Google
inqfen
26.12.2018
18:23:32
Либо в entrypoint клнтейнеру ожидание добавить

✖️
26.12.2018
18:24:24
в компоузе для этого сервиса:`cmd: ['./run.sh']`. а в там уже sleep 10; exec gunicorn --foo-bar

Kool
26.12.2018
18:24:31
ставьте restart on error

и ставьте пробовать 5 раз например

с интервалом в 30 секунд

я так понимаю проблема что бекенд стартует раньше базы

ещё можно настроить depends_on

улучшит ситуацию, но мне лично не помогло

✖️
26.12.2018
18:26:20
потому что депенд он не дожидается пока команда в контейнере полностью запуститься

я везде слипы кидаю если очень нужно

Денис
26.12.2018
18:27:32
Докер поднимается для тестов в CI и один из сервисов интерферирует с частью тестов.Поэтому нужно поднять часть сервисов - прогнать тесты, доподнимать и прогнать оставшиеся тесты. Все это из баш-скрипта запускается, так что видимо придется удалить проблемные сервисы из докер-компоуза и дозапускать их отдельно уже в нужный момент.

George
26.12.2018
18:28:02
Google
Kool
26.12.2018
18:28:04
можно подлечить логику приложения

чтобы при старте пытался N секунд подключаться

такой способ сам докер советует

Kool
26.12.2018
18:28:47
Глупость
не глупость, зависит от того как контейнер реализован

George
26.12.2018
18:29:02
Расскажу. Делай depends_on: healthy и расставь хелсчек нормально

inqfen
26.12.2018
18:29:04
тесты - одно, развертывание приложения - другое

Kool
26.12.2018
18:29:10
бывают приложения после старта приложения какую то важную логику стартуют (например миграции)

✖️
26.12.2018
18:29:16
либо создать для тестов отдельный компоуз без него

George
26.12.2018
18:29:31
Но это сильно хрупкая логика - раз. Два - работает только во второй версии формата докер-компоуза (не третьей)

inqfen
26.12.2018
18:29:39
George
26.12.2018
18:29:55
бывают приложения после старта приложения какую то важную логику стартуют (например миграции)
Ну, и очевидно хелсчек подымать только после выполнения миграций

George
26.12.2018
18:30:08
inqfen
26.12.2018
18:30:09
ну или хоть в баш оборачивают, не надо пытаться из докер-композа логику получить)

Kool
26.12.2018
18:30:17
у меня сейчас в тупую рестартит приложуху 5 раз каждые 30 секунд

если нет - выливка фейлится

Google
inqfen
26.12.2018
18:30:30
Это тупо же утилита, которая docker run облегчает

Денис
26.12.2018
18:30:36
можно кинуть проблемный сервис в отдельный компоуз файл и указывать его когда он нужен
Да, приходила в голову такая мысль. Просто думал, есть какие-нибудь ручки или хаки для такой ситуации. Спасибо.

inqfen
26.12.2018
18:30:44
Не надо из нее несвойственные задачи трясти

George
26.12.2018
18:31:22
Можно сделать вообще по красоте. Оберни все докеры в системд юниты. И делай любую логику старта

George
26.12.2018
18:31:46
inqfen
26.12.2018
18:31:53
написать плейбук или башскрипт куда проще как по мне

Куда?
на другой сервер например, на 100 других серверов

George
26.12.2018
18:32:10
Докер-компоуз ты в кубер тоже не затащишь

на другой сервер например, на 100 других серверов
Та пофиг. Докер не на системд бейзд дистрибутиве? Шутишь, да?

inqfen
26.12.2018
18:32:42
почему в кубер, просто развернуть приложение на 10 инстансах в aws например

просто делаешь скрипт/плейбук, складываешь вместе с кодом и юзаешь как надо

George
26.12.2018
18:33:22
просто делаешь скрипт/плейбук, складываешь вместе с кодом и юзаешь как надо
Плейбук для доставки конфигурации на целевые машины

Kool
26.12.2018
18:33:43
а зачем они

есть же сварм

George
26.12.2018
18:34:08
есть же сварм
Сворм говно

inqfen
26.12.2018
18:34:18
Сварм умер

Google
Kool
26.12.2018
18:34:19
ну лучше чем системд юниты )

George
26.12.2018
18:34:21
Давай так. Отношение к докеру может быть разное

Мы его используем для двух вещей

Быстрая разработка и изоляция сервисов

И микросервисы (кубы, etc)

Первое - абсолютно не противоречит запуску на стендэлоун нодах

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

Т.е. она сделана уже системд маунтом и нужно обеспечить старт сервиса только после маунта

Ваши предложения? Мигрировать все в s3?

Kool
26.12.2018
18:36:51
так у докер драйвер есть

для нфс

inqfen
26.12.2018
18:36:59
Не вижу проблем с системд юнитами
Неудобно когда например нужно дать твой код другому разработчику, так в ридми пишешь - стартуешь some.sh , а с юнитом ему придётся себе ещё и юнит добавлять

George
26.12.2018
18:37:31
Например, эльпайн

inqfen
26.12.2018
18:38:03
У кого-то альпайн на машине стоит?)

George
26.12.2018
18:38:15
Или мы столкнулись, что окружения на mac & linux по-разному фурыкают. В маке очень не хватает xargs -r

inqfen
26.12.2018
18:38:42
не, я про ситуацию с локальной разработкой

В случае CI/CD вся эта логика уходит туда

George
26.12.2018
18:39:04
Я тебе привел пример

Google
George
26.12.2018
18:39:05
Xargs

Скрипты ломаются

inqfen
26.12.2018
18:39:32
Только вот тех же юнитов на маке вроде как вообще нет

Там же наследник фряхи

В общем скрипт для локальной разработки, просто последовательный запуск сервисов через docker-compose

А в случае CI/CD эта фигня не нужна

inqfen
26.12.2018
18:44:10
ага

это точно работает везде

George
26.12.2018
18:44:35
Но нам проще было makefile сделать, чтобы в нем же блоки для сборки контейнеров и запуска тестов описать

inqfen
26.12.2018
18:44:52
даже в powershell работает, если кто вдруг на винде сидит

У нас тесты только в гитлабе

А если кому прямо припрет, то может и локально ручками запустить

LEXASOFT
26.12.2018
21:39:03
вот хороший пример применения миграций с хэлсчеками https://gist.github.com/pantsel/73d949774bd8e917bfd3d9745d71febf

George
26.12.2018
22:45:21
Фактически хелсчеки в нем не используются для зависимости сервисов

Директива links вроде как obsolete

Что ещё покритиковать....

Страница 939 из 1375