Alexander
я думаю там такие мизерные задержки, что их и не заметишь
Alexander
ну и голос и видео лучше не гонять в докер сети, память на port mapping много затратится
Anonymous
всем привет(я вернулся :) Народ какой ща лучший веб(php|python|java|go) манагер для докер-контейнеров на удаленном серваке?
Alex ZeroDub
интересно кто ставил эксперименты с webrtc. завтра сам попробую
Alex ZeroDub
ведь это p2p коннект, докер тут будет только инициатором коннекта. если конечно это будет по STUN а не TURN
Sergey
ребят, тупой вопрос
Sergey
как вы мониторите статусы контейнеров?
Sergey
у меня сейчас есть деплоймент, который мягко скажем работает легко и просто
Sergey
eval $(use_machine TARGET_MACHINE) docker-compose pull docker-compose up -d
Sergey
задача - мне надо как-то дожидаться что один из контейнеров таки начал принимать запросы
Sergey
у него процесс старта сейчас занимает где-то 30-40 секунд, но иногда по 2 минуты
Sergey
раньше у меня было что- тотипа
Sergey
timeout 60 docker-compose logs -f application
Sergey
но сейчас хочется как-то что-то адекватнее придумать. Что делать и как быть?
Sergey
можно ли использовать хэлсчеки?
Sergey
предоставляет ли докер ивенты какие-то?
Sergey
если конечно идея
Sergey
тупой цикл который раз в 10 секунд проверяет не умер ли контейнер при старте и отвечает ли приложение на запросы
Sergey
но может есть что-то менее велосипедное уже?
Sergey
я не думаю что это какая-то новая задача
Max
Мы, к примеру, у себя используем ранчер. Это как раз утилита для оркестрации контейнерами с интерфейсом. Умеет самостоятельно перезапускать контейнеры в случае падения. Плюс можно из интерфейса новые запускать или гасить, смотреть логи и прочее.
Max
http://rancher.com/
Антон
как в докерфайле одного контейнера вызвать команду из другого контейнера? (линк есть и вольюм прокинул)
Kirill
ssh?
Kirill
возможно
Антон
других вариантов нет? просто логически хотелось бы разделить контейнер с пхп и самим приложением, но чем дальше вглубь, тем больше дров
Alexander
зачем разделять?
Alexander
приложение может само работать без php?
Антон
нет, оно не может работать без всего, что перечислено в докер-компоуз, но это же не говорит о том, что мне нужно делать один большой-большой билд?)
Kirill
вопрос в том, для чего разделять пхп и приложение?
Alexander
приложение вообще подключается через volume и все
Kirill
с :ro
Антон
в нем фрейморк, и надо бы выполнять парочку-другую комманд
Антон
из серии сбросить кэш, и поставить вендоры, если их нет
Антон
те же миграции выполнить
Alexander
ну сделай скрипт, который будет все это делать при запуске
Антон
делаю, докерфайл)
Kirill
подрубаешь приложение через волум, стартуешь контейнер с пхп, он выполнив задачу (sh скрипт) завершает работу
Антон
а почему не в докерфайле это делать?
Kirill
через compose выставляешь приоритеты
Kirill
что когда и зачем стартовать
Alexander
можешь запускать тот же скрипт в отдельном контейнере, который как закончит все дела удалится
Kirill
именно
Антон
но тогда в этом скрипте все равно придется по ссш коннектиться к пхп контейнеру, верно?
Kirill
имеем 2 контейнера. 1 - крутит приложение, 2 - скрипт который выполняет то что тебе нужно (php, сброс кэша). К 1 и 2му контейнеру с помощью volume подключаем папочку с приложением. На выходе имеем доступ к приложению у обоих контейнеров.
Kirill
По такому принципу у меня bareos работает, 4 контейнера имеет доступ к папке с конфигами (с :ro (read only)) Сначала стартует director (sh скрипт) который проверяет доступ к контейнеру с базой данных, ждет пару секунд, затем проверяет наличие базы данных и если ее нет то создает базу, юзера, если есть - пропускает шаг создания и запускает director
Антон
первый контейнер с пхп, второй контейнер - скрипт, и из второго контейнера мне нужно дергать первый, ибо нужно пхп и там и там
Alexander
ну так запусти оба контейнера с php
Nikita
Докер это вам не виртуалка, чтоб коннектится и дергать
Nikita
Вот вам вообще он зачем в вашей задачи ? модно ?
Nikita
Я когда думаю про докер и что с ним делать представляю контейнеры иммутабельными, т.е собрал запустил и ничего менять внутри не надо, а если надо то пересобрал и запустил
Антон
можно, имеется 6 разработчиков и пять проектов с разным окружением, сейчас сидим на вагранте, но это очень неудобно, и к тому же отбирает немало места, так же с докером процесс деплоя будет проходить без непритных неожиданностей (или, хотя бы, с меньшим их количеством)
Ruslan
Докер это вам не виртуалка, чтоб коннектится и дергать
с одной стороны да, с другой стороны сами докеровцы говорят, что хотят со временем заменить функционал предоставляемый так скажем классическими виртуалками своими контейнерами
Антон
ок, нужно выполнять миграции, желательно не лазя каждый раз внутрь контейнера, и не прописыать их руками
Антон
как это сделать?
Антон
нужна и бд, и приложение с пхп
Антон
без "дерганий и коннектов"
Alex
entrypoint.sh
Alex
entrypoint
Антон
создал, он пишет, что запускает его, но на деле он ничего не выполнил) а второй раз пишет что берет результат из кэша)
Alex
какой такой кэш?
Антон
специально там сделал ошибку - никакой инфы об этом не вывело
Alex
пишешь обычный скрипт который будет запускать сначала миграции а потом приложение
Alex
и делаешь его своей входной точкой в контейнер
Антон
Step 4 : COPY entrypoint.sh /tmp/entrypoint.sh —-> Using cache —-> b066296d9691 Step 5 : RUN chmod +x /tmp/entrypoint.sh —-> Using cache —-> 738cde770555
Alex
И?
Антон
он не выполнился
Alex
и не понятно почему /tmp?
Alex
он не выполнился
Что значит не выполнился?
Alex
Он у тебя при каждом старте приложения будет запускаться
Alex
при сборке контейнера миграции не прогоняют
Антон
то и значит - захожу приложение, и кэш на месте
Alex
какой такой кэш?
Антон
кэш приложения, который чистится в ентрипоинте
Alex
Что?
Антон
это троллинг?
Alex
Помоему ты меня троллишь.
Антон
это ты меня троллиь
Антон
Alex
У тебя есть какой то sh скрипт который является входной точкой в твой контейнер