Danila
Как можно ограничить потребление ресурсов процессора 25% от одного(любого) ядра?
Danila
При условии, что я не знаю, сколько ядер у меня на машине
Павел
Товарищи, я что-то как всегда туплю. Вот есть docker-compose.yml, в нем nginx + бекендные сервисы.
ВЫкатывается это дело при обновлении сервисов как-то так:
docker-compose pull && docker-compose up -d && docker image prune -af
Если обновляется какой-то бекендный сервис, нжинс перестает его видеть, то есть при обращених к upstream, пишет, что connect() failed (111: Connection refused) while connecting to upstream, и пытается стучаться на Стрый ip бекендного сервиса.
Достаточно перезапустить контейнер с Nginx и он видит обновленную версию бекендного сервиса. В связи с этим вопрос: Как-то в компоуз-файле можно заставить перезапускаться/пересоздаваться определенный сервис? depends_on на это влияет? Или нужно колхозить docker-compose —force-recreate?
George
George
Количество ядер можно получить через nproc
George
George
Т.к. он работает через днс
George
Варианты
George
1. Traefik - самый простой. Замени на него nginx
2. В nginx впилить резолв днс. Чтоб почаще обновлял айпишники контейнеров внутри себя
3. Сделать штуку, которая будет слать nginx сигнал об изменении топологии контейнеров. Либо попробовать что-то типа jwuilder nginx
George
Или вообще nginx plus
George
Он вроде умеет в динамике определять, что апстримы поменяли адреса.
George
Есть ещё варик - ты можешь каждому докер контейнеру назначить определенный айпи, а потом их засунуть в конфиг nginx как есть.
George
Хост не отвечает - выкидываем из балансировки
George
Короче, готового из коробки решения нет 😭😭😭😭😭 ну, кроме может traefik
Aleksandr
господа, фрисвич кто-нибудь разворачивал в докере?
George
George
Он должен либо сам мониторить докер на предмет изменений (как делает traefik)
George
Либо тебе придется делать обвязку
George
Павел
George
George
Но могу тебе сказать, что на эфир (блокчейн) докер "втупую" не зашел. На системди нативных сервисах работало стабильнее
George
Там же все про летенси...
Aleksandr
я вот заметил что в докере у меня все медленнее работает, но опыта у меня с докером не так много
Aleksandr
например симфони(пхп) так вообще еле еле
George
George
Не виндовс, надеюсь ?
George
Или мак ?
Aleksandr
не, макось
Aleksandr
симфони 4 секунды инициализируется, жуть
George
ХА! На макось докер в виртуалке, если ты не в курсе
Aleksandr
тулбокс через виртуалбокс да
Aleksandr
а докер декстоп тоже?
George
Ну, это и есть причина тормозов
Aleksandr
вот жи
Дмитрий
George
Причина фс
Ну, не сам докер, а то, как он запущен, ога
Aleksandr
George
George
Можно, например, не разрабатывать в докере
Aleksandr
хочу среду разработки побыстрей :)
Aleksandr
кек
George
Разрабатывать на удаленном сервере в облаке
Дмитрий
George
Поставить Линукс нативно
Aleksandr
ну эт понятно
Aleksandr
просто хочу для всех разрабов единое окружение
George
Ну, просто это ТА проблема, которую на маке я готов терпеть
George
George
В смысле - это плохая цель
George
Дмитрий
George
Тебе главное, чтобы в прод катилось нормально. Без нормального гитфлоу и тестов это все равно не сделать
George
А как разработчик извращается на локальной машине + это его персональные половые трудности
George
Ты не поверишь, но даже у меня есть люди, которые НЕ РАЗРАБАТЫВАЮТ в докере
George
Но на прод катим в нем
George
😳😉
Myron
такой вопрос, как можно добавить хосты в /etc/hosts в момент билда имейджа? просто через RUN echo и в файл?
Юрий
Привет друзья.
Я с нескольк глупым вопросом пришёл. Прошерстил гугл, как то не нашёл работающего способа реализовать следующее:
- нужно из контейнера выполнять команду на хост машине.
- команда на хост машине стартует другой контейнер и убивает его.
Можно ли это сделать?
Дмитрий
Дмитрий
Если только для этого
Andrew
привет, есть папка проекта допустим
project\
файлы докера лежат в project\docker\backend\Dockerfile
как из корня собрать файл проекта, сбор падает на попытке скопировать но насколько я понял контекст сбора project\docker\backend
как указать путь до файла и контекст ?
Дмитрий
Насколько я помню, для сборки нельзя указывать родительские папки
Дмитрий
Точнее копировать из родительских папок
Vladimir
Vladimir
Где . это контекст. В вашем случае, если запускать из project, то можно оставить .
Vladimir
Andrew
George
George
Такая же история с resolv.conf
George
Если расскажешь, что хочешь - может придумаем как сделать
Cleric
Ну, тогда придется тащить в докер что-нибудь типа supervisord
За основу взял https://www.youtube.com/watch?v=s948NKa1I1I
Ну а дальше детали. Не обязательно ставить в CentOS docker, можно просто сделать архив образа, а импортить и запускать уже на хосте.
docker import centos610base.tar.xz
docker run -it centos610base:6.10 /usr/bin/linux32 /bin/bash
[root@26c7b2368808 /]# uname -a
Linux 26c7b2368808 4.15.0-52-generic #56-Ubuntu SMP Tue Jun 4 22:49:08 UTC 2019 i686 i686 i386 GNU/Linux