Aleksey
это немног оменяет но все остаемся в канве
Aleksey
ща
🏳️ Phil
но это неудобно. я в третий раз скажу - с точки зорения бизнеса легче просто ограничить клиента одной версий. любой, но одной
Aleksey
version: '2' services: php: image: "diphost/php:$(VERSION)" volumes: - /users/code/vasya/php56:/app - /users/shared:/shared nginx: image: "nginx:$(VERSION)" volumes: - /users/code/vasya/php56:/app - /users/shared:/shared ssh: image: "diphost/php:$(VERSION)" volumes: - /users/code/vasya/php56:/app - /users/shared:/shared command: sshd
Aleksey
сматри чо получаетя
Aleksey
у тя есть самоосбранные контейнера с php
Aleksey
в них кроме самого php есть нужный набор софта
Aleksey
ssh cron чо там еще
Aleksey
клиент ssh-ится туда
Aleksey
запускает чо ему надо
Andrey
а теперь представь, что таких полсотни на ноду/сервер
Aleksey
фил ?
Aleksey
использовать шаред php будет невозможно это да.
Aleksey
и типичного щареда когда у тя один инстанс впахивает на 100000500000 клиентов на одном сервере не получится
Aleksey
будет изоляция между клиентами
Aleksey
а значит потребления памяти
Aleksey
а значит нужна дедубликация памяти
Aleksey
и она вроде ка кпоявляется
Aleksey
да и сжатие памяти тже есть. оно негативно скажется на производительности. нокого волнует мниение люитлей шареда ?
Aleksey
zmem это как бы и есть свап. но свап сделанный на памяти...
🏳️ Phil
ну это совсем уж
🏳️ Phil
фил ?
что? :) клинт не хочет ничего запускать. он хочет чтобы оно уже было
Aleksey
оно и не будет
Aleksey
где тут клтиент что запускает то ?
Aleksey
единственное что ему будет рвать шаблон что он не будет видеть в top процессы от php-fpm
Aleksey
tree users users └── vasya ├── php56 │ └── index.php └── php7 └── index.php
Aleksey
ssh смонтирован так вот ssh: restart: always image: "diphost/php:$(VERSION)" volumes: - /users/code/vasya:/app - /users/shared:/shared command: sshd
Aleksey
то есть он заходит такой по ssh
Aleksey
и видит /app/php56 и /app/php7
Aleksey
вообще можно, но нельзя...
Aleksey
я понял
Aleksey
ssh то у нас будет от одной из версий.
🏳️ Phil
#shredhosting #hosting #diphost Смотрите. На самом деле как таковой проблемы нет. Есть три варианта глобально: 1. Я не использую докер для классических услуг шареда. Имею проблему со сборкой php 6-7 версий в одном флаконе. Таки собрав их так, я теряю смысл выделять в докер fpm и apache. Т.е. остается только допсервисы , о чем я писал выше. 2. Я делаю разные версии php на докерах и просто держу 6-7 докеров с кроном и shh на разных например IP (или как прокину), предлагая клиенту коннектится с разными реквизитами. И тогда всё очень легко, но неуверсальненько и клиент всегда путать будет. 3. Вариант (2), но phpXXX - это враперы делающие docker exex в предзапущенные докеры с нужной версией. Но латенси... Как-то так
🏳️ Phil
её пока почти никто не умеет оверселить. всё быстрее упирается в ядро. а вот как он оверселит проц нам неизвестно
Evgeny
Вариант 3 грустно
Aleksey
хм
Aleksey
есть еще вариант
Evgeny
Вариант 2 можно сделать с указанием в имени хоста версии
Aleksey
собирать php в папки
🏳️ Phil
Вариант 3 грустно
@smilingnavern расскажи нам
Aleksey
/php56 /php57
Aleksey
и делать их моутн
🏳️ Phil
собирать php в папки
На FreeBSD я так и делаю. И делаю симлинки. Но у debian неплохая обвязочка в пакете с php (хотя и пиздец было в ней разобраться), я наверное в его стиле просто с суффиксами сделаю типа в одном месте php56, php70 и так далее
Aleksey
так вот
Aleksey
version: '2' services: php: restart: always image: "diphost/php56" volumes: - /users/code/vasya/php56:/app - /users/shared:/shared command: /php56/php-fpm /app volumes_from: - php56 ssh: restart: always image: "diphost/php:$(VERSION)" volumes: - /users/code/vasya:/app - /users/shared:/shared command: sshd volumes_from: - php56 - php7 php56: image: "diphost/php56" volume: - /php56 php56: image: "diphost/php7" volume: - /php7
🏳️ Phil
и ? какая мысль?
Aleksey
папки с пыхом
Aleksey
собранные с prefix /php{version}
Aleksey
предоставляеют сервис php нужной версии
🏳️ Phil
Если я так смогу их собрать, зачем мне докер в итоге?
Aleksey
а в базовом образе есть системное окружение
Aleksey
для просто ты перебсорки.
Aleksey
вышла бяка для php56 пересобрал контейнер с php56
🏳️ Phil
ну я так на сборке и буду делать
Aleksey
дак вопрос в том сколько персобирать же
Aleksey
и в том что бы контейнеры были одинаковыми несмотря на наличие "услуг"
Andrey
вот если бы всё это не требовало кастомайза самого php, вот это бы было дело, а в итоге то всё одно php прийдётся менять, чтоб они смогли вконце заработать вместе
Navern
@smilingnavern расскажи нам
Привет:) ну с кроном и правда грустно. Самый простой вариант тягать по хттп вгет/курл. Либо делать отдельный ssh контейнер. Вон уже упоминали флант, у них же был проект https://github.com/flant/pam_docker который еще не успели затестить, но вроде он частично решает то, что нужно
Navern
пам_докер это способ избежать вообще логина в хостовую систему
Navern
а внутри контейнера одного держать допустим несколько php-cli
Navern
что не очень удобно, но уже лучше
Denis
Если уж так надо почему не запихать лайтовый инит внутрь ?
Denis
Это к теме что отдельные крон контейнеры не оч
Navern
крон работает на хосте
Navern
крон когда выполняется это как заход юзера в систему
Navern
с модулем пам докер мы можем пробросить в подобных случаях юзера внутрь контейнера
Navern
ну по крайней мере так выглядит на бумаге
🏳️ Phil
Меня напрягает стоимость завертывания неймспейса. Пусть и через pam
Denis
Я вообще не понимаю зачем сущность , которая вторгается в систему
Denis
Это какой-то манки патчинг