
Alexander
12.08.2016
11:06:34
можно погуглить по baseimage
https://github.com/phusion/baseimage-docker
там же и крон, кстати, есть

Алексей
12.08.2016
11:07:48
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

Google

Алексей
12.08.2016
11:07:55
сматри чо получаетя

Alexander
12.08.2016
11:07:57
мне это решение идеологически не нравится, впрочем (baseimage)

Алексей
12.08.2016
11:08:05
у тя есть самоосбранные контейнера с php
в них кроме самого php есть нужный набор софта
ssh cron чо там еще
клиент ssh-ится туда
запускает чо ему надо

Andrey
12.08.2016
11:09:24
а теперь представь, что таких полсотни на ноду/сервер

Алексей
12.08.2016
11:09:32
фил ?

Alexander
12.08.2016
11:10:30
короче, чтобы сделать шаред в докере, нужно больше оперативки и некие первоначальные затраты на настройку
но потом всё будет круче
по части управления/администрирования/обновления

Google

Алексей
12.08.2016
11:11:10
использовать шаред php будет невозможно это да.
и типичного щареда когда у тя один инстанс впахивает на 100000500000 клиентов на одном сервере не получится
будет изоляция между клиентами
а значит потребления памяти
а значит нужна дедубликация памяти
и она вроде ка кпоявляется

Alexander
12.08.2016
11:12:16
тут или буквально 5 контейнеров на сервер, но тогда не будет вот этих извращений с 2 версии пхп для доступа по ssh на проект или же каждому свой пхп и прочее (и тогда нужно много оперативки)

Алексей
12.08.2016
11:12:50
да и сжатие памяти тже есть. оно негативно скажется на производительности. нокого волнует мниение люитлей шареда ?

Alexander
12.08.2016
11:13:10
по идее там в своп же уйдёт, да?
теоретически можно купить NVMe парочку и там своп сделать
это будет дешевле, чем оперативку

Алексей
12.08.2016
11:13:38
zmem это как бы и есть свап. но свап сделанный на памяти...

Alexander
12.08.2016
11:13:39
но как быстро оно сдохнет от свопа - я не знаю

Phil
12.08.2016
11:13:48

Alexander
12.08.2016
11:14:22
какой-то нибудь компромиссный вариант

Phil
12.08.2016
11:14:35
фил ?
что? :) клинт не хочет ничего запускать. он хочет чтобы оно уже было

Алексей
12.08.2016
11:14:46
оно и не будет
где тут клтиент что запускает то ?
единственное что ему будет рвать шаблон что он не будет видеть в top процессы от php-fpm

Google

Alexander
12.08.2016
11:16:59
кстати, я знаю, что DO , во-первых, не оверселлит оперативку, а во-вторых, контейнеры запускаются не на сетевых дисках, а на тех, что непосредственно подключены к серверу... не знаю, насколько DO ориентир, но вот так
вероятно, лучше всего купить двухголовую материнку , что-нибудь там с 24 слотами оперативки и набить их 32 гигабайтными модулями RDIMM
ну и получится достаточно низкая стоимость гигабайта

Алексей
12.08.2016
11:19:10
tree users
users
└── vasya
├── php56
│ └── index.php
└── php7
└── index.php
ssh смонтирован так вот
ssh:
restart: always
image: "diphost/php:$(VERSION)"
volumes:
- /users/code/vasya:/app
- /users/shared:/shared
command: sshd
то есть он заходит такой по ssh
и видит /app/php56 и /app/php7

Alexander
12.08.2016
11:20:28
кстати, про restart: always
там ведь нельзя порядок загрузки определить?
верно?
что за чем стартует

Алексей
12.08.2016
11:20:53

Алексей
12.08.2016
11:21:01
я понял
ssh то у нас будет от одной из версий.

Alexander
12.08.2016
11:21:13
вот поэтому через systemd мне больше нравится это делать


Phil
12.08.2016
11:21:19
#shredhosting #hosting #diphost Смотрите. На самом деле как таковой проблемы нет. Есть три варианта глобально:
1. Я не использую докер для классических услуг шареда. Имею проблему со сборкой php 6-7 версий в одном флаконе. Таки собрав их так, я теряю смысл выделять в докер fpm и apache. Т.е. остается только допсервисы , о чем я писал выше.
2. Я делаю разные версии php на докерах и просто держу 6-7 докеров с кроном и shh на разных например IP (или как прокину), предлагая клиенту коннектится с разными реквизитами. И тогда всё очень легко, но неуверсальненько и клиент всегда путать будет.
3. Вариант (2), но phpXXX - это враперы делающие
docker exex
в предзапущенные докеры с нужной версией. Но латенси...
Как-то так
кстати, я знаю, что DO , во-первых, не оверселлит оперативку, а во-вторых, контейнеры запускаются не на сетевых дисках, а на тех, что непосредственно подключены к серверу... не знаю, насколько DO ориентир, но вот так
её пока почти никто не умеет оверселить. всё быстрее упирается в ядро. а вот как он оверселит проц нам неизвестно


Evgeny
12.08.2016
11:22:03
Вариант 3 грустно

Алексей
12.08.2016
11:22:16
хм

Google

Алексей
12.08.2016
11:22:18
есть еще вариант

Evgeny
12.08.2016
11:22:29
Вариант 2 можно сделать с указанием в имени хоста версии

Алексей
12.08.2016
11:22:32
собирать php в папки

Phil
12.08.2016
11:22:40

Алексей
12.08.2016
11:22:44
/php56 /php57
и делать их моутн

Phil
12.08.2016
11:22:56

Alexander
12.08.2016
11:24:08
в общем, самый идеологически правильный вариант, к которому стоит стремиться - это 1 контейнер - 1 сервис
но если очень надо - можно и несколько через baseimage (или аналогичные проекты)

Phil
12.08.2016
11:24:43
собирать php в папки
На FreeBSD я так и делаю. И делаю симлинки. Но у debian неплохая обвязочка в пакете с php (хотя и пиздец было в ней разобраться), я наверное в его стиле просто с суффиксами сделаю типа в одном месте php56, php70 и так далее

Admin
ERROR: S client not available

Алексей
12.08.2016
11:25:14
так вот
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
12.08.2016
11:25:53
и ? какая мысль?

Алексей
12.08.2016
11:26:03
папки с пыхом
собранные с prefix /php{version}
предоставляеют сервис php нужной версии

Phil
12.08.2016
11:26:46
Если я так смогу их собрать, зачем мне докер в итоге?

Алексей
12.08.2016
11:26:47
а в базовом образе есть системное окружение
для просто ты перебсорки.

Google

Алексей
12.08.2016
11:27:21
вышла бяка для php56 пересобрал контейнер с php56

Phil
12.08.2016
11:27:37
ну я так на сборке и буду делать

Алексей
12.08.2016
11:27:54
дак вопрос в том сколько персобирать же
и в том что бы контейнеры были одинаковыми несмотря на наличие "услуг"

Andrey
12.08.2016
11:33:39
вот если бы всё это не требовало кастомайза самого php, вот это бы было дело, а в итоге то всё одно php прийдётся менять, чтоб они смогли вконце заработать вместе

Navern
12.08.2016
11:34:36
@smilingnavern расскажи нам
Привет:) ну с кроном и правда грустно. Самый простой вариант тягать по хттп вгет/курл. Либо делать отдельный ssh контейнер.
Вон уже упоминали флант, у них же был проект https://github.com/flant/pam_docker
который еще не успели затестить, но вроде он частично решает то, что нужно

Алексей
12.08.2016
11:35:16

Phil
12.08.2016
11:35:34

Navern
12.08.2016
11:36:26
пам_докер это способ избежать вообще логина в хостовую систему
а внутри контейнера одного держать допустим несколько php-cli
что не очень удобно, но уже лучше

ptchol
12.08.2016
11:39:12
Если уж так надо почему не запихать лайтовый инит внутрь ?

Navern
12.08.2016
11:39:48

ptchol
12.08.2016
11:40:21
Это к теме что отдельные крон контейнеры не оч

Navern
12.08.2016
11:48:22
крон работает на хосте
крон когда выполняется это как заход юзера в систему
с модулем пам докер мы можем пробросить в подобных случаях юзера внутрь контейнера
ну по крайней мере так выглядит на бумаге

Phil
12.08.2016
11:51:55
Меня напрягает стоимость завертывания неймспейса. Пусть и через pam

ptchol
12.08.2016
12:01:22
Я вообще не понимаю зачем сущность , которая вторгается в систему
Это какой-то манки патчинг