Ivan
нет причин
inqfen
Есть молоток с красной ручкой, ты считаешь, что не умеешь в молоток с синей ручкой?
Rainbow
бери ansible, он лучше композа
Zero downtime в пару строк не выйдет
inqfen
Zero downtime в пару строк не выйдет
В пару десятков вполне выйдет
inqfen
Я писал такое
Sergey
Zero downtime в пару строк не выйдет
я пока что не видел zero в его требованиях
Rainbow
Дай пример
inqfen
С телефона не дам, но общая суть - стартуют новые контейнеры, проверяются, на них переключается прокси
inqfen
Делов фигня
inqfen
Это если брать тот же хост и у тебя нет внешнего балансера
inqfen
Если есть, все проще
Rainbow
Ну там нужно service discovery. Руками писать фигня
Rainbow
Кто балансировщику расскажет, что у тебя свап
inqfen
Исключил 50% хостов из балансировки - обновил - включил в балансировку - выключил оттуда старые - обновил - включил
inqfen
Кто балансировщику расскажет, что у тебя свап
Мы тут про ансибл как бы, ты сам там пишешь что и когда делать
inqfen
В балансерами aws, azure и подобным работать умеет
inqfen
Если у тебя свой сотовый - то редачишь конфиги
inqfen
В haproxy можешь хоть через веб бэкенды включать - выключать
inqfen
В общем задача несложная
Rainbow
А, забыл. Traefik же
Rainbow
Он сам лезет в докер
Ivan
мне вот интересно кто на постгресе с zero-downtime живет и с миграциями
Ivan
(не знаю, важен ли постгрес)
Rainbow
Ну делать миграции которые не лочат базу
inqfen
У меня есть
Rainbow
Переехать на 11 версию
inqfen
Там лок на миллисекунды
inqfen
А планирование миграций, которые надолго лочат, уже на dba должно быть
inqfen
Но это совсем редкость
inqfen
Да и к докеру отношение не имеет
Ivan
ладно, спс что хоть отписали)
Ivan
Да и к докеру отношение не имеет
Это понятно, согласен
inqfen
что делать если я DBA в том числе? :)))
сказать, что раз работаешь за двоих, то и зп пусть так же платят)
inqfen
Ну и dba ответ на этот вопрос уже должен знать
Viktor
Помогите Проблема с правами при монтировании. На продакшене при монтировании пользователь файлов выставляется в 1000 а должен www-data. Проверяю это через команду docker-compose exc app sh -c 'ls -la' Есть docker-compose на локальном машине работает все как часики. https://gist.github.com/websitevirtuoso/3dc0006391a04c79f69a23f89e1d9fa0 В докер файле выставляю права usermod -u 1000 www-data && groupmod -g 1000 www-data USER www-data
Viktor
сам несправляюсь, непонимаю, понимаю что беда с выставлением прав но как решить незнаю
Viktor
че все пьют?)
Rainbow
Это логично все.
Rainbow
Пользовать это число 1000+ У вас локальном и на проде разные пользователи с разным uid
Rainbow
Имя это просто строка в общем
George
Поясните зачем вообще монтирование файлов нужно. Это как бы не бест пректис
Viktor
Поясните зачем вообще монтирование файлов нужно. Это как бы не бест пректис
да, но это сейчас не важно. я понимаю но незнаю как сделать так чтобы права на фалы выставились правлиьн
George
Ну, типа docker run -e UID=1000 ...
Viktor
Имя это просто строка в общем
спасибо. но это мне непомогло. я понимаю что разные пользователи и прочее. но мне надо чтобы права выставились правильно или пользователя создать или еще чего решение дайте если знаете плиз
Viktor
Ну, типа docker run -e UID=1000 ...
использую docker-compose
George
Далее у тебя отрабатывает docker-entrypoint.sh, который изначально из-под рута, делает chown на файлы, а потом запускает твой приклад под UID из ENV
George
использую docker-compose
Это не важно. Докер-компоуз это обёртка к докеру
George
Смотри. Если тебе интересно решать проблему с правами - я запретить не могу. Но могу сказать, что лучше ее избежать на входе
George
Я предложил один из вариантов
George
Ещё обрати внимание на https://medium.com/@mccode/understanding-how-uid-and-gid-work-in-docker-containers-c37a01d01cf
George
Т.е. чисто гипотетически ты можешь замаппить юзера внутри докера на любого юзера снаружи
Viktor
вот, это и пытаюсь сделать. на локалке все ок а проде чет непашет
Nazar
пачаны, что такое нет и/о?
Oleg
пачаны, что такое нет и/о?
Net - сеть I/o - in/out. Дальше сам плс.
Nazar
Net - сеть I/o - in/out. Дальше сам плс.
я так и думал, но почему там так много тогда, если это сеть...
George
я так и думал, но почему там так много тогда, если это сеть...
Потому что все контейнеры через сеть общаются?
George
Даже когда в рамках одного сервера запущены ?
Nazar
только 2(
Nazar
не думаю что на редис так дофига идет
Sergey
я так и думал, но почему там так много тогда, если это сеть...
всмысле почему? вход выход по интерфейсу
Sergey
значения парсятся невернно вестимо
Andrey
Ребят, а можно ли узнать какой memory limit установлен на контейнер изнутри него?
Maxim
Ребят, а можно ли узнать какой memory limit установлен на контейнер изнутри него?
shared memory 64Mb вроде бы по умолчанию, но я мог неправильно понять ваш вопрос
Andrey
shared memory 64Mb вроде бы по умолчанию, но я мог неправильно понять ваш вопрос
Не, я имею в виду немного другое. Вот запустили контейнер с лимитом скажем в 100мб, как мне об этом узнать внутри контейнера? Где взять это значение?
Maxim
docker run --memory 100m
Отлично, теперь у вас задача внутри контейнера выполнить команду которая вам вернёт это значение?
Andrey
Ну или если есть какие то более правильные способы сказать приложению внутри, сколько ему жрать можно.
Maxim
Yep
Может при запуске контейнера создать переменную окружения -e CURRENT_MEMORY_LIMIT=100M ? Как вы думаете?
Andrey
Может при запуске контейнера создать переменную окружения -e CURRENT_MEMORY_LIMIT=100M ? Как вы думаете?
Ну можно конечно, но так то можно и аргументом при запуске передавать. Хочется меньше телодвижений. Да и мне кажется где-то в контейнере это все же можно получить из коробки
Maxim
Ну можно конечно, но так то можно и аргументом при запуске передавать. Хочется меньше телодвижений. Да и мне кажется где-то в контейнере это все же можно получить из коробки
А чем вам не подходит способ передачи информации снаружи? Зачем вам нужно что то дергать внутри? Передали снаружи и нет необходимости проверять что либо внутри
Andrey
А чем вам не подходит способ передачи информации снаружи? Зачем вам нужно что то дергать внутри? Передали снаружи и нет необходимости проверять что либо внутри
Ну как зачем. Чтоб меньше телодвижений нужно было для запуска. Чтобы не обрабатывать ситуацию когда лимит не передан и вот это вот все.
Maxim
Ну как зачем. Чтоб меньше телодвижений нужно было для запуска. Чтобы не обрабатывать ситуацию когда лимит не передан и вот это вот все.
Вы запускаете контейнер, верно? У вас есть readme.md или что то типа того, может даже bash скрипт написали, что вы ещё пытаетесь усовершенствовать?