Maxim
ну да ну да весь разговор выглядит как "можно и волгу заставить плавать если захотеть"
Представь что в твоей жизни не всегда будет достаточно ресурсов для решения и начни представлять как бы ты поступил если у тебя есть определенные ограничения. С сервером дома наверное каждый сможет, а ты вот без сервера попробуй )))
Sergey
но это технически невозможно постановка задачи требует определенных ресурсов для выполнения и даже минимально работоспособный вариант без нагрузки это тоже ресурсы
Sergey
и дома без железа это не сделать
Никита
опять срач домашнее железо vs облака?
Konstantin
Никита
Если бы у меня был свой дом, то я нашел бы место для серверной, а если обычная квартира, то проще место в стойке в ближайшем ДЦ арендовать
Danila
Danila
Вот и задался вопросом
Danila
То что доступно это какое нибудь пятое поколение
Danila
А хорошие игрушки стоят дорого
Danila
Еще с схд возиться рейды всякие, а потом оно упадет , все восстанавливать. Зато весело:)
Ильдар
Зашел в чят по докеру, а там...
Sergey
привет всем много где в репозиториях вижу что в композ файле идёт нджинкс но если несколько проектов на сервере? получается нджинкс надо поднять отдельно и потом настраивать сеть к каждому контейнеру?
Ильдар
Ильдар
я к тому что не могут два нджинкса висеть на 80 порту
Два контейнера не могут занимать один и тот же порт хоста, верно.
Sergey
Два контейнера не могут занимать один и тот же порт хоста, верно.
поэтому и говорю если допустим два бэкенда на сервере крутится, то нджинкс уже из композ файла надо выносить и запускать отдельно и настраивать сеть на эти бэкенды?
Ильдар
От твоего случая зависит. Может тебе достаточно второй nginx на другой порт хоста повесить: ports: -8080:80
Sun
Нужна какая-то примитивная автоматизация, которая будет подкладывать конфигурации и перезапускать nginx
Sergey
хорошо спасибо
Sergey
а нджинкс не выступает в роли балансировщика разве?
Sergey
ааа
Sun
а нджинкс не выступает в роли балансировщика разве?
У него это, прямо скажем, не главная фича
Дмитрий
У нас у каждого проекта свой nginx которые отдает разные ебкенды либо статику, а перед ним traefik который уже раскидывает по nginx, но это только на дев окружениях так. На проще просто один nginx с выделенным ему ip
Oleg
привет всем много где в репозиториях вижу что в композ файле идёт нджинкс но если несколько проектов на сервере? получается нджинкс надо поднять отдельно и потом настраивать сеть к каждому контейнеру?
надо смотреть на то, какую полезную работу там делает нжинкс в композе этих проектов. например: хитрый раутинг, раздача статитики с других контейнеров, "запускалка" для php-fpm, какое-нить хитрое кэширование и тп если этот случай, то помимо этих нжинксов надо поднять "общий" нжинкс (или caddy или traefik) для хоста. а если nginx из композа не делает никакой полезной работы с тз приложения а просто раздает / внаружу, то его можно смело оторвать.
Oleg
тогда смысла в нем не много. если на хосте бежит несколько подобных проектов, то надо создать отдельный контейнер nginx / caddy / traefik, который будет смотреть "наружу", создать для него отдельную сеть в докере (напр local_web), и в композе этих проектов подключить приложение в эту сеть (опционально — прописать алиас для этой сети)
Oleg
вот я изначально так и думал, спасибо
Тут товарищ тоже резонную мысль написал t.me/docker_ru/94470 Все зависит от плотности размещения. В девелопменте практически всегда хочется иметь высокую плотность: чтоб на каждом хосте крутилось по-максимуму проектов и чтобы они жили своей жизнью и не мешали друг другу. И тогда описанный подход имеет смысл В низкобюджетном продакшене (а также в пет-проджектах) высокая плотность размещения тоже имеет смысл, поэтому — аналогично А в каком-то более жирном проде уже мб плотность типа "один хост - один проект", и тогда городить цепочку из реверс-прокси нет смысла. Достаточно того нжинкса который в компоузе проекта.
Sergey
ну пока что играюсь) так что думаю вынести докер и создать сеть
George
Есть проблема
Дмитрий
Примерно аналогично. А ещё можно шлифануть qrator, чтоб он защищал при доступе из интернета
А у нас на внутренних nginx проверка что из VPN пришли, иначе не пускаем. Тогда и безопасно и сертификат выдается
George
Я буквально вчера секса поимел. Traefik на каждый контейнер создаёт пару фронт-бек. Предположим, что у тебя три контейнера с беком. Получается, что ты нормально балансировку не построишь. Причем если пользоваться docker swarm, то все честно - трефик создаёт один фронт и столько беков, сколько инстансов приклада
Лев
Помоему гораздо проще работать все таки с nginx. У меня висит на всех dev/prod серверах контейнер с nginx-proxy, открыты 80 и 443 порт. У каждого проекта свой nginx контейнер со своими конфига. Конифиги стандартизированы Bitrix, Node и т.п. просто домен меняешь и все. Новые технологии это конечно прекрасно, но Traefik еще не готов для работы в продакшене.
LEXASOFT
jwilder/nginx-proxy
Maxim
Помоему гораздо проще работать все таки с nginx. У меня висит на всех dev/prod серверах контейнер с nginx-proxy, открыты 80 и 443 порт. У каждого проекта свой nginx контейнер со своими конфига. Конифиги стандартизированы Bitrix, Node и т.п. просто домен меняешь и все. Новые технологии это конечно прекрасно, но Traefik еще не готов для работы в продакшене.
Traefik умеет то что не умеет nginx и они отлично работают в тандеме. Пытаться использовать traefik в качестве альтернативы nginx говорит о том что не прочитали документацию traefik до конца ;) traefik и nginx дополняют друг друга, а не пытаются заменить
Georgiy
Осталось решить вопрос динамических апстримов в nginx
вы про сервисдискавери ? https://github.com/weibocom/nginx-upsync-module
George
вы про сервисдискавери ? https://github.com/weibocom/nginx-upsync-module
опять пересобирать nginx. Задолбало уже
Georgiy
так то достаточно один раз собрать со всем зоопарком и дальше не морочишься
George
CI сделай, делов то
ага. А еще сборку своего deb/rpm, автотесты и прочую радость 👍😂
Georgiy
собственно я про сборку артефакта и говорил
Georgiy
собственно а как вы еще закатаете любое другое программное обеспечение, у которого например артефакта нет?
Mykyta
такой вопрос, нужно заранить джанго чтобы он отдал статику и прикрутить ее к нгиксу сразу, но чтобы сбилбить нужно передать кучу енв переменных пайтону, как быть в таких ситуациях ведь докер не умеет билдить с енв файлами?
Mykyta
имею ввиду есть варианты как красиво выйти 🙂
Maxim
traefik готов к продакшену. Другой вопрос, что у всех свои требования и он может попросту не пройти.
Может быть и существуют какие то требования которым не соответствует traefik но мне не удалось придумать ни одного )
Maxim
Наверное я ленивый и невнимательно читал древнюю документацию
Konstantin
красава
Не стоит, я её не писал
Mykyta
Не стоит, я её не писал
ну и как енв файл крутить
Maxim
ну и как енв файл крутить
С помощью bash достаешь переменные из .env файла и мостыриш строчку для docker build, как пример
Konstantin
ну и как енв файл крутить
Ты изначально за файл спрашивал или что ты редактировал?
Mykyta
не редачил
Konstantin
Как вариант выше или внутри через source
Александр
Build args?
Mykyta
Build args?
и в колбасу 300 переменных?
Konstantin
и в колбасу 300 переменных?
Ты понимаешь, что 10+ аргументов для билда - звоночек?
Konstantin
Оло, скорая? 🤪
Mykyta
Ты понимаешь, что 10+ аргументов для билда - звоночек?
ну это же пайтон код, переменные которого вынесены специально в енв файлы
Mykyta
не совсем сказал бы что для билда
George
Пока обсуждаем, извините, какую-то хрень
George
Ни у кого проблем со сборкой джангы не возникает
Maxim
Пока обсуждаем, извините, какую-то хрень
Игра называется "угадайте что я задумал"
George
+
С новым аватаром 👍
George
и в колбасу 300 переменных?
Ну, блин, сделай херь на баше, которая берет env и разворачивает в команду. Массивы осилишь ? Но это как крайняя мера
Александр
По-моему, это не аргументы билда, а конфиг для сборки приложения. Его разве нельзя в файл положить?
Mykyta
Давайте конкретный кейс
вообщем, приложение мультистейдж билдом в нгикс хочу вытянуть статику —> python manage.py collectstatic --noinput https://docs.djangoproject.com/en/1.9/howto/static-files/ для этого нужно передать при запуске ему енв файл чтобы питончик прогнался и отдал все из себя статик вот так гуд?
Georgiy
то есть модульное ПО для вас это то что требует доработки ?