Задать вопрос
PankovAlxndr
@PankovAlxndr
Fullstack web developer

Как синхронизироваться с файлами на vps при локальной смене ветки git?

Здравствуйте, веду разработку на mac 2015г
внутри докера
очень плохая производительность, особенно если база 2+ гб и множество запросов

поэтому решил переехать на удаленную разработку
купил vps, поставил докер
файлы проекта и база промонтированы из хост системы vps к докеру (volumes)
открыты порты и из браузера имею доступ к сайту в докере

такие же файлы проекта у меня на ноутбуке, когда я их правлю phpstorm их сохраняет и закидывает на vps (rsync)
оттуда их уже видит докер и я вижу изменения в браузере

те php-fpm \ nginx \ mysql \ redis \ elasticsearch - все крутится в докере и не у меня на ноуте, я лишь отправляю на vps файлы, так скорость лучше, чем нативно работать с докером на маке
да и проектов несколько и каждый по 10+ гигов, по несколько версий БД на проект - всю память выжирает как sdd так и ram на ноуте

в текущем воркфлоу пока все работает - устраивает, скорость ниже чем если php-fpm ставить "нативно" на маке через brew, но ве равно в разы выше, чем внутри "нативного" докера

столкнулся с проблемой - смены ветки, слияния и работы с коммитами (git)

проблема:
пишу код, нужен хотфикс в другой ветке и протестировать (вручную)
меняю у себя ветку... все, танцы с бубном минут на 5 чтобы аналогичные файлы оказались на vps и git внутри vps так же смотрел на ветку с хтфиксом (порой смена ветки затрагивает 20-40 файлов)
устал постоянно придумывать что-то непонятное (в основном вручную копировать файлы на впс или же заходить по ssh и внутри vps менять ветку git checkout ..., обычно всегда 1-2 файла проблемные вылезают из-за пробелов или форматирования)

вопросы:
когда я меняю ветку у себя на ноуте - как мне сделать так чтобы на vps аналогично сменилась ветка?
когда я делаю коммит - как закоммитить и на vps?

гуглил и не смог найти понятную для себя инфу
нагуглил mutagen.io который вроде как следит сам за сменой файлов
но это не про гит история, можно конечно прикрутить, но мне кажется я изобретаю велосипед и уже есть хорошие решения
да и задаюсь вопросом, а нужен ли мне гит на vsp... может достаточно на ноуте

Как удобно менять ветки гит при этом синхронизироваться с vsp (внутри которого докер, ну докер пока я не использую прям так на 100%, не пушу в реджестри, простой компоуз со своими инструкциями, а код и бд примонтированы)?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
@Akela_wolf
Extreme Programmer
А зачем вам гит на vps? Должен быть какой-то один "источник правды".

Мне кажется что история должна быть такой: git server (github/gitlab/etc) -> local repository -> rsync to vps -> volume to docker

Соответственно, когда вы меняете ветку в локальном репозитории - rsync видит изменения файлов и синхронизирует их с vps, который ничего про гит не знает - для него это просто набор файлов.
Ответ написан
@vitaly_il1
DevOps Consulting
Кроме вполне правильного совета Михаил - если хотите "как у больших", можно настроить автоматический деплой с помощью Github Actions: при коммите в определенную ветку Github Actions будет синхронизировать файлы на вашем vps.

В отличие от mutagen.io, вы сможете использовать ту же схему и для деплой в несколько окружений и проектов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы