докер

AnrDaemon

Продвинутый новичок
update для системы делать не будем?
вообще это же нормально компелить, вопрос откуда исходник.. или я что-то не допонимаю?
(там test/staging...)
Вопрос не в том, компилировать или нет, вопрос в том, где это делать.
Компиляция и установка - это две отдельные процедуры.
И чем дальше они разнесены, тем лучше для здоровья системы.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
итак:
1. сборка образов выполняется на докерхаб
2. образы создаются только когда сборка прошла без ошибок
3. официальные образы поддерживаются аналогично пакетам
4. я добавляю хорошо поддерживаемые расширения со статусом stable
5. образы скачиваются для установки так же, как пакеты

но всем нравится обсуждать сборку на проде из исходников, так что продолжаем офтоп
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Статус stable - это миф.
В стабильном php 5.4.11 были нафиг сломаны трейты в минорном релизе.
В стабильном php не помню каком в php-fpm в минорном релизе был добавлен белый список расширений с дефолтом .php.
В стабильном apc в минорных stable релизах вообще несчетное число раз были регрессии с сегфолтами.
Продолжать этот список можно долго.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
apc в прошлом
в собранном образе белый список расширений ни на что не влияет
5.4.11 - печально, а память у тебя хорошая, 5 лет такие вещи помнить
да, раз в пятилетку что-то ломают
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
> белый список расширений ни на что не влияет
как раз влиял: если у меня этой директивы в конфиге не было, то начиная с энной версии дефолт был .php only, и внезапно ломались всякие .phtml и .inc (что до сих пор встречается в легаси проектах).

> но память у тебя хорошая, 5 лет такие вещи помнить
не, плохая, я свой багрепорт загуглил :)

> да, раз в пятилетку что-то ломают
раз в пятилетку в каждом из компонентов, в итоге вероятность нарваться уже норм себе
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
как страшно жить!

а ты в курсе, что в Oracle для внутренних проектов разрешается использование MySQL GA-версий примерно через год после релиза в GA?
 

fixxxer

К.О.
Партнер клуба
Консервативность с СУБД это правильно. Критичная штука. А когда весь мир для тебя тестирует - вообще прекрасно! :)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
неплохо сказано, как для разработчика на NodeJS
 

fixxxer

К.О.
Партнер клуба
Хаха :)

NodeJS - это в определенном смысле новый PHP, со всеми вытекающими. Но, все же, движется по пути "от phpnuke к symfony" намного шустрее. :)
 

WMix

герр M:)ller
Партнер клуба
Вот когда уже на нод версии пхп4 перейдем.. ну уж совсем глючно все. Хотя признаю, рубят мелко и красиво
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
я вынесу версии расширений в декларацию значений переменных вверху докерфайла, надо зафиксировать - можно указать конкретную версию

причин бояться компилировать расширения нет, я 15 лет собираю php сам
при указании версий никаких преимуществ образ в виде блоба не дает - наоборот, удобно, когда виден докерфайл и лог сборки
 

AnrDaemon

Продвинутый новичок
Да, это удобно. Один раз. Потом - это просто мусор, в котором тошнит копаться.
За десять лет меня от портянок, 99% информации в которых никому не нужно, уже воротит.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
не понимаю, чем мешает строка configure для сборки php в собранном бинарнике php и в deb/rpm-пакетах?

а в чем достоинства блоба, который лежит мертвым грузом, перед образом, который собран на докерхабе по докерфайлу из гитхаба?
недостатки мне очевидны: блоб обновить намного сложнее, а отдебажить, проверить сборку и доработать под себя - вообще невозможно.
Open source удобен.
Или вы не знаете, как работает докерхаб? не нужна автоматическая сборка для новых минорных версий php - снимаете галочку.

Вот, например, я вынес версии расширений в переменные, зафиксировал текущую стабильную сборку для ReactPHP.
https://github.com/grikdotnet/phpdocker/blob/master/7.2/events.Dockerfile
готовый образ grigori/phpextensions:7.2-events
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Для публичных сборок - да, наверное.
Для приватных не вижу смысла вот совсем.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
не видишь смысла в чем именно?

У меня ощущение, что это религиозное - без аргументов. Привык ты, что .deb - иммутабельный бинарник, и докер с его наследованием и до-сборками сознание отталкивает.

Был у меня скрипт сборки PHP на sh. Отлаживать хоть в bash-скрипт, хоть докерфайл - одно и то же. Где-то надо его сохранить, на гитхабе - удобно.
Отладил докерфайл один раз - любую модификацию собрал за 10 минут.
Когда в PHP понадобилась грамматика - сотрудник отнаследовался, добавил aspell без моего участия.

Что можно упростить, сделав образ приватным? Можно помешать менять baseline в корпоративной среде. Так вам и докер не нужен - деплойте себе виртуалками, по-старинке.
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
мне кажется тут подмена понятий. компелить на prod для docker это создать image, запустить, а после компелить. все что происходит до запуска - это создание контейнера. не вижу проблему в компиляции. сорс хоть из своего repo сгружай хоть по hash проверяй. пока проблемы скорости создания контейнера нет, разделять image не вижу смысла
 

fixxxer

К.О.
Партнер клуба
@grigori, ну, я в общем-то докер и использую как виртуалки с удобным деплоем, инструментами оркестрации, и кучей интеграций со всякими там CI.

Понятно, что workflows бывают разные, да ради бога, каждый др^W деплоит как он хочет.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
чем еще удобно использовать образ, собранный на докерхабе - не нужно поддерживать свой локальный registry, docker stack работает с моими образами без настроек, и нет раскрытия кода приложения

я покажу немного позже как я деплою все из одного конфига stack.yml

а если я хочу деплоить образ как виртуалку - мне нужно свой registry поднимать, танцевать с ssl-сертификатами, поддерживать - одной заботой больше

это оправданно, если корпоративные полиси написаны под сертификации, и требуют полный inhouse, аппрув каждой либы, и никакого тебе гитхаба-npm-composer
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
@grigori, ну да, тут PCI DSS ;)

npm-composer есть на самом деле, внутренние, с синхронизацией со внешними.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Мы кстати, пользуемся своим регистри, потому что он в гитлабе из коробки идет. Но пока у нас докер-образа только для CI и разработки используются, не для продакшна. Щас вроде правда амазон выкатил поддержку кубернетса у себя, и может попробуем его, но в докер-сварме мы не осилили качественный файловер, и поэтому не стали использовать (в смысле, не только мы, так и не нашли реально описанного работающего автоматизированного способа)
 
Сверху