Использование rsync для развертывания обновлений кода для приложения Symfony

У меня есть пара машин для разработки, на которых я кодирую свои изменения, и один рабочий сервер, на котором я развернул свое приложение Symfony. В настоящее время мой процесс развертывания утомителен и состоит из следующего рабочего процесса:

  1. Определите файлы, измененные в последнем коммите:

svn log -v -r HEAD

  1. FTP эти файлы на сервер в качестве обычного пользователя
  2. Как пользователь root, скопируйте эти файлы вручную в место назначения и, если необходимо, поскольку файл новый, измените владельца на пользователя apache

Локальный пользователь не имеет доступа к каталогам apache, поэтому я должен использовать root. Я всегда волнуюсь, что что-то пойдет не так из-за забытого файла во время FTP или копирования в каталог apache src.

Я думал, что вместо этого я должен FTP весь Symfony app/ а также src/ каталоги вместе с composer.json на сервер как обычный пользователь, затем создайте скрипт, использующий rsync для синхронизации всех файлов.

Новый рабочий процесс будет:

  1. FTP-приложение / src/ composer.json на сервер в каталоге проекта локального пользователя
  2. Запустите скрипт синхронизации для синхронизации файлов
  3. очистить кеш

Это хорошее решение или есть что-то лучшее для проектов Symfony?

Этот вопрос похож и дает пример rsync, но плюсы и минусы этого метода не обсуждаются. В идеале я хотел бы получить метод, который является наиболее надежным и простым в установке, желательно без необходимости установки нового программного обеспечения.

1 ответ

Решение

В принципе, каждое автоматизированное решение будет лучше, чем rsync или ftp. Как вы упомянули, есть несколько вещей: копировать файлы, очищать кеш, запускать миграцию, генерировать ресурсы, продолжать список.

Здесь вы найдете список возможных решений.

http://symfony.com/doc/current/cookbook/deployment/tools.html

Из моего опыта работы с Symfony я могу порекомендовать capifony, чтобы понять это, требуется время, но это окупается

Другие вопросы по тегам