Подходит ли докер для личного vps с self-hosted-проектами?
Всем привет! Есть личный VPS на дебиане, на котором крутится целый зоопарк разного софта. Кроме меня и пары челвоек им никто не пользуется, так что ни о каком распределении нагрузок речи не идёт; цель - сэкономить время при переносе между vps-хостерами (привет айхор и мастерхост), с учётом что бекапы БД и так делаются, встаёт только вопрос развернуть софт:
- NextCloud - PHP7, FPM
- YOURLS (сокращатель ссылок) - PHP7, FPM
- чужой сайт на очень древней версии битрикса - PHP5, FPM, устаревшие модули из сторонних репозиториев
- несколько пет-проектов на Flask - Python3, UWSGI, Redis
- а также на NodeJS
- MariaDB
- Nginx, раскидывающий запросы с поддоменов на весь этот зооапрк, + Certbot для SSL
- несколько статических страниц, выдающихся напрямую Nginx-ом
- несколько задач в кроне и демонов systemd
Насколько подходит для этого докер? Я не представляю, как всё вышеперечисленное можно распихать по контейнерам, чтобы не получилась полная каша
И если не подходит, тогда что использовать? Вариант "просто баш скрипт, настраивающий всё" оставил на крайний случай
Пума Тайланд, я исхожу из того, что написал автор вопроса: "цель - сэкономить время при переносе между vps-хостерами (привет айхор и мастерхост), с учётом что бекапы БД и так делаются, встаёт только вопрос развернуть софт". Разве Ansible не решает эти задачи?
Дмитрий Свиридов, ну если вам надо развернуть пять версий пхп и мускула то не особо, или же им разворачивать тот же докер но это опять сильный оверхед
В этой задаче просто докером сильно потратить два часа, а ансиблом кучу дней
Дмитрий Свиридов, спасибо, вот это действительно ответ по теме. Про ансибл слышал, но как-то не углублялся. Сейчас сижу, читаю документацию, и понимаю, что он отлично подойдёт как для экономии времени на недорогой впс, так и в перспективе расширения в будущем; как для базовой настройки сервака а-ля установка пакетов и создание юзеров, так и для развёртывания софта Никита, Пума Тайланд, я решил так - настройка виртуалки ансиблом, им же установка актуального софта, который довольно просто настраивается; а для древней пхп и прочих задач, замусоривающих систему кучей легаси пактеов - буду использовать докер. Насколько я понял, они между собой дружат отлично
Я не представляю, как всё вышеперечисленное можно распихать по контейнерам, чтобы не получилась полная каша
а в чем проблема - то?
- NextCloud - PHP7, FPM
отдельная папка с docker-compose, который стартует контейнеры этого проекта
- YOURLS (сокращатель ссылок) - PHP7, FPM
отдельная папка с docker-compose, который стартует контейнеры этого проекта
и т.д.
...
- Nginx, раскидывающий запросы с поддоменов на весь этот зооапрк, + Certbot для SSL
ну - nginx можно снаружи оставить чтобы запросы в соответствующие контейнеры прокидывать
Я пока не очень понял, какой получается смысл в докере, если отсутствует независимость контейнеров? К примеру, к nginx придётся прокидывать volum-ы для отдачи статики, а чтобы php-fpm корректно обрабатывал запросы от nginx, путь к скрипту внутри контейнера должен полностью совпадать с путём к volum-у снаружи. Уже на этом этапе получается какая-то каша
к nginx придётся прокидывать volum-ы для отдачи статики
наоборот - папки со статикой нужно монтировать в нужные контейнеры - я ж надеюсь - вы данные в самих контейнерах не храните?
чтобы php-fpm корректно обрабатывал запросы от nginx,
путь к скрипту внутри контейнера должен полностью совпадать с путём к volum-у снаружи.
с помощью редиректов и алиасов в настройках нгинкса все это чудесно разруливается.
Во-вторых - в ряде случаев в проект добавляете контейнер с нгинксом, где разруливаете всю статику и прочее, а ваш системный нгинкс оборачивает запросы в ssl и проксирует туда запросы снаружи
я неправильно выразился - имел в виду не uploads, а статику самого сайта (css, js, png), + опять же для работы php-fpm нужно, чтобы nginx видел структуру сайта. А вот вариант с отдельным контейнером + общим nginx для ssl видится мне логичнее)
А вообще смысл в таком есть, в контексте задачи "по быстрому перенести впс к другому хостеру" как по вашему? Или всё таки "просто баш скрипт, настраивающий всё" будет лучше?
А вообще смысл в таком есть, в контексте задачи "по быстрому перенести впс к другому хостеру" как по вашему? Или всё таки "просто баш скрипт, настраивающий всё" будет лучше?
С моей точки зрения - смысл есть. К тому же в реальности при разработке проектов - команде программистов нужно разворачивать эти окружения у себя. А у кого-то MacOS, у кого-то Linux а кто-то - и на винде. Использование докера это сильно упрощает.
Плюс к тому - сильно упрощается процесс Continious Integration и автоматического тестирования проекта.