Использование rsync для развертывания обновлений кода для приложения Symfony
У меня есть пара машин для разработки, на которых я кодирую свои изменения, и один рабочий сервер, на котором я развернул свое приложение Symfony. В настоящее время мой процесс развертывания утомителен и состоит из следующего рабочего процесса:
- Определите файлы, измененные в последнем коммите:
svn log -v -r HEAD
- FTP эти файлы на сервер в качестве обычного пользователя
- Как пользователь root, скопируйте эти файлы вручную в место назначения и, если необходимо, поскольку файл новый, измените владельца на пользователя apache
Локальный пользователь не имеет доступа к каталогам apache, поэтому я должен использовать root. Я всегда волнуюсь, что что-то пойдет не так из-за забытого файла во время FTP или копирования в каталог apache src.
Я думал, что вместо этого я должен FTP весь Symfony app/
а также src/
каталоги вместе с composer.json
на сервер как обычный пользователь, затем создайте скрипт, использующий rsync для синхронизации всех файлов.
Новый рабочий процесс будет:
- FTP-приложение / src/ composer.json на сервер в каталоге проекта локального пользователя
- Запустите скрипт синхронизации для синхронизации файлов
- очистить кеш
Это хорошее решение или есть что-то лучшее для проектов Symfony?
Этот вопрос похож и дает пример rsync, но плюсы и минусы этого метода не обсуждаются. В идеале я хотел бы получить метод, который является наиболее надежным и простым в установке, желательно без необходимости установки нового программного обеспечения.
1 ответ
В принципе, каждое автоматизированное решение будет лучше, чем rsync или ftp. Как вы упомянули, есть несколько вещей: копировать файлы, очищать кеш, запускать миграцию, генерировать ресурсы, продолжать список.
Здесь вы найдете список возможных решений.
http://symfony.com/doc/current/cookbook/deployment/tools.html
Из моего опыта работы с Symfony я могу порекомендовать capifony, чтобы понять это, требуется время, но это окупается