Vladislav
нет не php, делаю тестирование js приложения внутри докера, с selenium с Xvfb
Evgeny
Что-то вы делаете не так....
Vladislav
всё вроде так
Vladislav
по сути тест-скрипт отработал и надо supervisor'у завершиться, вот
Vladislav
во, нашел https://blog.zhaw.ch/icclab/process-management-in-docker-containers/
Vladislav
хорошо объясняется зачем нужен supervisor вместо bash скриптов
Vladislav
правда решение с прибиванием костыльное конечно 😞
Alf 🙀
во, нашел https://blog.zhaw.ch/icclab/process-management-in-docker-containers/
не ну когда пацаны в cmd отдают start.sh все ок у них с головой, что тут сказать. читайте больше таких статей.
Vladislav
что не так с головой, или просто потому что не entry-point.sh называется?
Sergei
вооружитесь башом и не забивайте гврзди микроскопом
Sergei
while true вот это вот все
Vladislav
пока нет
Sergei
while true - отличный способ получить 10к форков в секунду.
Alf 🙀
while true - отличный способ получить 10к форков в секунду.
если вы форкаете процесс то конечно да.
Sergei
если вы форкаете процесс то конечно да.
когда вы делаете while true ; do smth ; done, smth - это внезапно форк.
Alf 🙀
while true вот это вот все
и что простите?
Sergei
и что простите?
это хорошо аффектит остальную нагрузку на машине, и это не контролируется сигрупами.
Alf 🙀
когда вы делаете while true ; do smth ; done, smth - это внезапно форк.
если вы чекаете exit code то это слабо похоже на форк
Alf 🙀
это хорошо аффектит остальную нагрузку на машине, и это не контролируется сигрупами.
я не понимаю что вы мне хотите доказать. что не стоит использовать while true а юзать supervisor вместо этого, я правильно понимаю?
Sergei
я не понимаю что вы мне хотите доказать. что не стоит использовать while true а юзать supervisor вместо этого, я правильно понимаю?
я хочу сказать, что решение использовать while true ; do ; done в контейнере - сомнительная идея, и если уж вам необходимо рестартовать нагрузку без рестарта контейнера, стоит применять для этого более взрослые и функциональные инструменты.
Vladislav
ok
почитал, ну ок, в приципе, правильней через ENTRYPOINT задавать. Но это не имеет значения, когда ENTRYPOINT не задан, результат один и тот-же
Alf 🙀
я хочу сказать, что решение использовать while true ; do ; done в контейнере - сомнительная идея, и если уж вам необходимо рестартовать нагрузку без рестарта контейнера, стоит применять для этого более взрослые и функциональные инструменты.
окей. юзайте ифчики. не зацикливайтесь вы так на одном этом вайле, господи. смотрите ширше. если вам необходимо рестартовать (нагрузку? что это?) процесс внитри контейнера то у вы делаете что то не так. это мой основной посыл
Alf 🙀
почитал, ну ок, в приципе, правильней через ENTRYPOINT задавать. Но это не имеет значения, когда ENTRYPOINT не задан, результат один и тот-же
In most other cases, CMD should be given an interactive shell, such as bash, python and perl [...] CMD should rarely be used in the manner of CMD [“param”, “param”] in conjunction with ENTRYPOINT вот отсюда: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
Vladislav
окей. юзайте ифчики. не зацикливайтесь вы так на одном этом вайле, господи. смотрите ширше. если вам необходимо рестартовать (нагрузку? что это?) процесс внитри контейнера то у вы делаете что то не так. это мой основной посыл
Поясню еще раз зачем, есть тестовый скрипт, для его работы надо чтобы были запущены иксы, вот это и есть тот дополнительный процесс. А еще мне захотелось для отладки заглянуть туда через x11vnc - еще +1 дополнительный процесс
Evgeny
smell-baron
Vladislav
Эти авто-тесты будут крутиться на jenkins на серваке
Vladislav
это один из вариантов
Alf 🙀
это один из вариантов
это правльный вариант. если у вас js то protractor умеет писать видео
Alf 🙀
например
Alf 🙀
ну и xvfb засовывать в супервайзор - плохая идея потому что у супервайзора по умолчанию немного изолированный енв а xvfb надо передавать типо дефолт дисплей и т.п. барахло. не надо так делать. к тому же xvfb валится только в том случае если чтото сделано не так. во всяком случае у меня иначе никогда не было...
Alf 🙀
кстати статья прям реально хорошая. в плане как маркер того что вы что то(все) делаете не так.
Alf 🙀
во, нашел https://blog.zhaw.ch/icclab/process-management-in-docker-containers/
Vladimir
поймал себя на мысли что статьи про докер старее полугода - года максимум даже читать не хочетя
Vladimir
потому что всё меняется с такой скоростью, что земля из под ног уходит
engelbart
Всё так
Aleksandr
Кто-нибудь подскажет можно в swarm mode exec выполнить с manager?
Evgeny
Чому нет?
Aleksandr
Чому нет?
Блин, я похоже не знаю как посмотреть имя или ID контейнера, который создается через SERVICE
Mihail
Блин, я похоже не знаю как посмотреть имя или ID контейнера, который создается через SERVICE
docker ps иначе никак. сначала docker service ps чтоб посмотреть на какой ноде запущены контейнеры этого сервиса. потом уже на этой ноде docker ps
Evgeny
docker service ls -> docker service ps <servicename> же
Mihail
нет
Mihail
там есть айдишники. но это не айдишники контейнеров
Aleksey
да, вход в конекретный контейнер в сварме так себе
Aleksey
сложновато
Mihail
ну ладно хотя бы docker service logs сделали
🏳️ Phil
У меня внезапный вопрос - а когда я docker stop делаю, что процессу высылается? Как мне перехватывать это? Встроенную базу хочу закрывать
F_I_N
база же в контейнере сделай композе он стопанет все запущенные
🏳️ Phil
база же в контейнере сделай композе он стопанет все запущенные
встроенная - ключевой слово. но не важно. "стопает" то он как?
Aleksey
The docker stop command attempts to stop a running container first by sending a SIGTERM signal to the root process (PID 1) in the container. If the process hasn't exited within the timeout period a SIGKILL signal will be sent.
🏳️ Phil
Сигтерм
А, ага
Aleksey
да где-то нагугли по быстрому :)
Aleksey
#kill #signals https://medium.com/@gchudnov/trapping-signals-in-docker-containers-7a57fdda7d86#.2agga2x10
🏳️ Phil
Ой какая хорошая штука. А проставь теги типа там kill, signals
Aleksandr
А кто-нибудь подскажет, странную вещь наблюдаю, докер 11, "старый" swarm, overlay network. В одной подсети 2 одинаковых схемы: по 1 менеджеру с консулом, по 3 подключенные ноды. Обнаружил что все ноды (и из первой и из второй схемы) обмениваются друг с другом через udp 7946.
Aleksey
Ну vxlan udp для транспорта юзает
Aleksandr
А чего оно забыло в чужой схеме?
Aleksey
Что такое чужая схема?
Aleksey
Аа
Aleksandr
Что такое чужая схема?
У меня 2 незавиcимых swarm
Aleksandr
А обмениваются вообще все друг с другом
Aleksey
Мултикаст, не?
Aleksandr
Не, прям нода к ноде ходит.
Aleksey
И отвечают друг другу?
Aleksandr
В том то и дело, что да!
Aleksandr
В этой сети есть еще одна машина не в swarm с ней тоже обмениваются...
Vladimir
подковёрные дрязги
Aleksey
В этой сети есть еще одна машина не в swarm с ней тоже обмениваются...
Дык это, если мультикаст - может оно и отвечает
Aleksey
Но я не настояший сварщик. Тспдампить надо