Konstantin
т.е новичкам вы тутн е помогаете?
Что ты под помощью понимаешь? Я тебе дал дельный совет, это всё уже описано пошагово с картинками, в чем сложность? Помочь гуглить?
Sergey
я даже не знаю в какую сторону гуглить
выше уже подсказали - нужно ставить composer прямо в контейнер с приложением и запускать на этапе сборки. Можно взять его из готового образа через multi-stage build: https://medium.com/@othillo/adding-composer-to-php-docker-images-using-multi-stage-builds-2a10967ae6c1
Mikhail
т.е новичкам вы тутн е помогаете?
FROM composer:1.6.5 as composer
FROM php:7.2-fpm-alpine
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN composer install --no-dev
Konstantin
Mikhail
Konstantin
тянуть vendors отдельным stage, потом копировать только их. Зачем composer в финальном образе то?
Mikhail
А кто будет vendors собирать?
Mikhail
Нужны актуальные версии на момент билда контейнера
Konstantin
сложна
Mikhail
В репозитории лежит composer.json с явным указанием версий зависимостей. Если сборка vendors и сборка контейнера будут разрозненными операциями то может быть рассинхрон версий
Konstantin
я тебе говорю Multistage в другом порядке делать, а не вот это вот всё
Konstantin
FROM example-php:latest as deps
# install composer, app code, deps, etc here
FROM example-php:latest
COPY --from=deps /app /app
Mikhail
А композер где?
Mikhail
Мне не понятно. Кажется это экономия на спичках
Mikhail
Тем более когда речь идёт про пхп
Алексей
Алексей
Экономя спичку в час, за год сэкономить дерево можно
Konstantin
да не в спичках дело, зачем дев инструменты то в конечном образе?
Mikhail
Max
привет! кто-то настраивал/устанавливал автокомплит докера на zsh?
Если да, то как? Пока нашёл только это, но так и не понял что с этим делать: https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker
Aleksey
Чятик, а docker hub может собрать образы для не x86-64? И если нет, то какой лучший способ собирать arm образы из ветки на гитхабе?
Konstantin
Aleksey
Konstantin
😳
Aleksey
Гуглом — ничего внятного, но вдруг я что-то пропустил
Konstantin
Взять и скормить ему сборку арм
Aleksey
ээээээ
Aleksey
Я что-то пропустил и теперь в докерфайле можно указать целевую архитектуру?
Konstantin
Или я
Aleksey
АФАИК, архитектура образа соответствует хосту на котором он был собран. Отсюда и произошёл мой исходный вопрос
Andrey
гуглить пробовал?
Konstantin
Konstantin
но инфа вроде есть, через эмулятор
Aleksey
гуглить пробовал?
Естессно. Но то что я чего-то не нашёл — не значит, что этого нет
Andrey
странно. потому что docker build arm on x86 выдаёт кучу годных ссылок
Aleksey
Konstantin
глянь всё же гуголь, есть инфа
Andrey
и с докер хабом в том числе
Andrey
Alexander
Aleksey
Aleksey
видел. Но это довольно кривой костыль. И именно поэтому я пришёл в чат спросить у людей, а не верить посту, которому 3 года — за это время могло что угодно поменяться
std::slavik
приветствую, подскажите - можно ли гарантировать как то ресурсы контейнеру?
std::slavik
в чем кейс - на одной vdsке по тарифу фиксированному крутится dante socks прокси и http сервер на питоне, оперативки гиг и в целом хватает, но иногда данте поджирает оперативку и http сервер встает
std::slavik
собственно думаю запустить прокси из контейнера и ограничить ресурсы ему
Konstantin
Тебе нужно ограничение, а не резервирование. Есть
std::slavik
вот
это первое что на ум пришло
но интересно - можно ли зарезервировать
если например на сервере куча всего крутится и все по контейнерам не рассуешь
а нужно чтобы один контейнер стопудово имел 100-200мб оперативки всегда
Konstantin
Только рассчитывать и лимитировать
std::slavik
спасибо
std::slavik
еще может подскажете socks5 прокси какой нить попроизводительнее данте
Konstantin
Есть резервация, но не поможет тут
std::slavik
а то он как не в себя чет с оперативкой
std::slavik
Есть резервация, но не поможет тут
а еще вопрос такой - как правильно будет сделать - у меня в контейнере ffpmeg с обвязкой обрабатывает видосы разные, если видео короткое - можно отдать контейнеру все ядра, чтобы он быстренько обработал и отдал пользователю, но если видос большой и много процессорного времени требует- лимитировать, чтобы он его долго, но все же обработал не загружая систему
std::slavik
например ВК примерно то же делает с каналом при отдаче видео - если запрашивать весь видос одним запросом - сервер отдает 5-10мб на хорошей скорости сперва(для буферизации), а затем ограничивает до 1мбит/с
std::slavik
причем если не одним запросом загружать, а несколькими через bytes-range - все пакеты отдаются на полной скорости
std::slavik
то есть видимо на каждый запрос выделяется воркер у которого настроены лимиты вот такие
Alting
Вы путаете процессы обработки и отдачи контента
std::slavik
std::slavik
я аналогичный пример привел
std::slavik
как это для канала работает у вк
Alting
Он совершенно не аналогичный
std::slavik
вот мне нужно то же самое, но для процессора
в общем условие какое требуется - если среднее процессорное время за минуту меньше лимита - то отдавать все ресурсы процессу
если превысило - тогда включается ограничение
Johnny
std::slavik
std::slavik
например мержить аудио/видео потоки с ютуба
Alting
Вам нужно что-то, вроде cpulimit, но с отслеживанием нагрузки
std::slavik
ну и раскидывать по воркерам - дополнительное усложнение балансировщика
std::slavik
сейчас просто в redis rpc поступает
и свободный воркер хватает его
а так придется дополнительно вводить приоритеты и тд
что усложняет систему
std::slavik
Johnny
std::slavik
ну не совсем два
std::slavik
короче динамически в процессе работы контейнера отслеживать его среднее потребление процессорного времени и менять cpulimit если оно превышает порог
std::slavik
и обнулять среднее по завершению обработки, чтобы следующий запрос уже не ждал пока среднее там опустится
std::slavik
что то вроде monit - там можно вот такие условия прописывать
# php-fpm
check process phpfpm with pidfile /var/run/php-fpm.pid
if cpu > 50% for 2 cycles then alert
if total cpu > 80% for 5 cycles then restart
if memory > 300 MB then alert
# if total memory > 500 MB then restart
подумал, что было бы логично что то подобное в докере иметь, но не restart alert, а изменять например лимиты
std::slavik
погуглил - вроде можно менять on the fly лимиты, но видимо супервизор, который будет отслеживать потребление ресурсов контейнерами и менять лимиты придется самому писать. Пойду дальше гуглить, если кто то сталкивался с задачей такой и подсказать может - просьба тегнуть
Victor
Всем привет, ребят, подскажите плз:
есть образ где приложение с графикой, если я пошарю его, человеку на винде будет сильно сложно его запустить?
bebebe
Victor
пичаль
Sergey️
А traefik умеет вайтлистить для одного домена?