8 часов назад
Постараюсь в свободное время это сделать, спасибо за предложение
[FetchIt] - Полноценная замена AjaxForm без зависимостей 59
9 часов назад
Самое лучшее решение в данной ситуации — это сделать отдельный файл для работы с этим API, например:
/assets/components/mycomponent/api.phpну или про...
[JSON] Как вывести страницу в формате JSON? 2
Вчера в 21:54
Не отображаются добавленные поля в редактировании пользователя.
Добавил одно поле в «общую информацию», для другого создал вкладку, в ней ещё вкладку...
ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile). 31
Вчера в 11:28
$_modx->resource['tv-name']Или в чанках где-то внутри pdoResources
$_pls['tv-name']но лучше избегать дефис в названиях TV. Дефис н...
Получение tv поля ресурса 4
17 апреля 2024, 19:12
С расположение пакетов это одна из проблем которую на мой взгляд нормально не решишь, всегда на измене что то то можешь затереть
По этому и придумал ...
Эксперимент с Modx Extra + Docker 12
17 апреля 2024, 09:41
Исходники открою ага. В общественный репозиторий пока не переношу.
[modRetailCRM] - теперь бесплатный для всех. 2
16 апреля 2024, 22:00
Координаты можно в админпанели у ресурса в ТВ полях определять…
Для этого советую поставить компонент YandexCoordsTv
Так будет намного проще.
Как сделать отложенную загрузку для скриптов яндекс карт и рекапчи 3? 7
16 апреля 2024, 21:10
Спасибо огромное! Все как надо!
[miniShop2] Как таблицу товаров, сформированную через msGetOrder, разбить на отдельные табли... 2
Раньше — да, распространенное мнение было, но не сейчас, например у нас в компании наш продакшн лежит в контейнерах под управлением kubernetes, правда и наш продакшн настраивал не Павел Зарубин, а опытные девопсы, по этому конкретно за свою сборку могу говорить только за себя, что пока что инцидентов по ней не было, но это вовсе не значит что не стоит использовать докер на продакшене
Проекты которые не поддерживаете наверное лучше все таки на статическом сервере держать, все таки это надежнее чем любая виртуализация
Нет конечно, дамп при down контейнера делается на тот случай, чтобы вы могли полностью удалить папку с bd и пересобрать контейнер, а так вся активная БД монтируется в папку ./bd которая появляется после первой сборки контейнеров
Я сейчас так поступаю: залетным клиентам я настраиваю статический сервер и прощаюсь с ними навсегда, только этот статический сервер все равно смотрит на докер конфиги, чтобы в случае чего я мог забрать именно ту конфигурацию, которая в данный момент у клиента парой кликов, а вот клиенты которые на поддержке и в вечно активной разработке находятся на моем сервере где кроме докера ничего больше не установлено и крутятся в контейнерах, это позволяет за секунды делать деплой, да и если что то случится мы с ними все равно на связи, но повторюсь, за три месяца инцидентов у меня не было)
Вот например один из таких сайтов в контейнере: yugsn.ru/
Части которые тебе нужно каждый раз для каждого проекта менять i.imgur.com/keHUXYA.png знать пользователя и БД, расположение папок и т.д., я уже молчу что из примера выше тебе нужно будет еще и redis у себя развернуть и еще миллион телодвижений сделать, в общем безсмысленный диалог, давай его заканчивать, ты останешься при своем мнение, я при своем)
Начало:
Клонируем сборку локально, пишем make init выбираем modx, соглашаемся на инициализацию нового проекта и просто работаем
Деплой:
Перекидываем папку с проектом на сервер, пишем make init отказываемся от инициализации нового проекта и все, на сервере у нас все точно также работает, ничего устанавливать не надо, никакие базы данных создавать или менять конфиги также не надо не зависимо от того в какую папку вы положили проект локально или на сервере
В случае если проект уже существующий, то просто закидываем его в папку app заменяем modx.sql на свой пишем make init отказываемся от инициализации нового проекта и все точно также просто работает
Хорошо, друг, забудем про 50 проектов и 50 бд, предположим один проект, на локальной машине, у меня проекты храняться в ~/Work/AnyName на машине клиента в /var/www/other на машине клиента есть и активно используется redis у меня его нет. Так вот чтобы перенести обычный сайт, мне нужно:
В CMS докер — это абсолютно не нужный оверкилл, сайты на CMS как правило так часто не дорабатываются, они не зависят от внешних пакетов, а доработки в основном такого размера, что минусы докера никогда не окупятся сэкономленным временем от его использования
А тут уже как настроите и какую ОС выберете
Именно, при том, частой практикой является своя ОС под каждый модуль, т.е. например nginx + php-fpm в одном контейнере, mysql в другом, redis в третьем
Да, также как и выполнить внутри любую команду извне
Да, если они не смонтированы извне
да, через интерфейс докера docker exec
У любой базы данных есть физические файлы) Вот их и монтируют
Как правило в компаниях работают всегда на одном и том же стеке и есть уже готовые образы лежащие где то на сервере обновляемые удаленно девопсами под каждый стек, они конфигурируются один раз и дальше просто поддерживаются, а проекты извне на доработку обычно приходят уже с конфигурацией и это не ваша забота, а забота заказчика если у него в контейнере что то не работает)
Да, но в целом это забота девопсов, ну или вас, если вы собрались делать свой собственный и не повторимый образ, в любом случае «наружу» торчат только файлы проекта, иногда конфигурации nginx/apache и файлы баз данных
Контейнер настраивают обычно при старте разработки проекта, если проект готовый, вам его нужно просто развернуть одной командой и не зависимо от вашей ОС, внутри все директории и оболочки будут те, что предусмотрел и продумал девопс, в целом докер для этого и нужен, чтобы приложение не зависело от окружения разработчика
Опять же, как настроит разработчик, но чаще всего от виртуального рута, вам нужно прокинуть собственного пользователя в виртуальный рут, для этого существует команда docker login, это делается один раз
Т.к. в контейнере пользователь обычно один, он виртуальный и от его имени все работает, такая проблема в принципе исключена
Фух :) Вроде бы на все ответил, но я могу в чем то ошибаться, у нас в компании есть devops которые отвечают за такие вещи, нам разработчикам только и остается что в новые проекты уже подтягивать один из готовых контейнеров, я не гуру докера но вроде бы на ваши вопросы ответил правильно)
По сути если хорошо владеете линуксом, то и с созданием своего контейнера проблем возникнуть не должно, просто начните пробовать, тут теория в целом не нужна, а если вы ни разу не разворачивали даже локальное окружение на линуксе, то тут стоит начать с изучения линукса, а не докера. Но в целом у нас в компании есть люди, которые вообще в докере никак не понимают и никогда даже локальное окружение не разворачивали, однако это не мешает им быть хорошими программистами и эффективно его использовать, просто не лезут в конфиги, а используют готовое. И без личного девопса в интернете образов полно на любой вкус и цвет
В проекте логи хранятся в MongoDB,
Новая часть проекта в PostgreSQL,
А старая часть проекта в Mysql
При этом выпилить что то одно хотя бы даже временно естественно не вариант, т.к. все ломается. Без докера мне пришлось бы настраивать у себя MongoDB и PostgreSQL, разбираться как это сделать и тратить возможно ни один час просто чтобы развернуть проект, хотя работа, которую я должен сделать вообще никак не связана ни с монгой, ни с постгрессом
1) Вам присылают проект, а у него конфигурация писалась на nginx, а у вас на машине развернут апач или наоборот, без докера вам придется переписывать конфиги под свой сервер, а конфиги бывают ой какие не простые
2) Вам присылают проект, а там скажем очереди лежат в Redis, у вас на машине нет редиса, без докера вам пришлось бы его устанавливать, настраивать и т.д. и стоит оно того скажем ради одного проекта где работы на пол часа?
3) У вас на машине php7.1, а в проекте который вам прислали в одном из пакетов минимальная версия php — 7.3, опять же вам нужно доустанавливать 7.3 на свою машину со всеми модулями только чтобы развернуть этот проект
В основном докер решает такие проблемы в мире PHP, все что он делает по сути — это запускает на вашей машине — виртуальную и конфигурирует ее в соответствии с проектом, это настолько облегчает как разработку, так и деплой, что люди сознательно идут на уменьшение производительности храня продакшен в контейнерах
Я бы с радостью посмотрел на эти готовые пакеты, либо мы говорим о разном, либо ты не видел тот же билдер в октябре и не представляешь о чем я говорю (кстати билдер, это первое что приводят в пример защитники октября, и к сожалению — это единственное его преимущество, все еще возникает вопрос зачем?)
Обязательной не является, но было бы гораздо удобнее если бы являлась и была удобно реализована)
Но да ладно, это все действительно имхо
«CMS — для быстрого создания сайта, но процесс расширения ресурсов вручную настолько времязатратен в modx что за то же время можно половину своей админки на Laravel написать», подразумевая что написать свою админку в laravel далеко не быстрая задача, и такие времязатраты в CMS не допустимы и именно по этому modx именно «приучает» хранить все в ресурсах и не делать свои модели под разные сущности, а унифицировать их через id шаблона, что откровенно очень плохая практика