Всем привет.
Сегодня я вам расскажу как сделать простой деплой сайта с помощью shipit и git. Вам подойдет этот вариант если вам всего лишь необходимо перенести ваш код на prod или dev без лишних заморочек. В этом варианте не создаются ревизии с предыдущими версиями. В случае чего, через гит откатываемся от изменений и деплоим сайт снова. Этот вариант может не подойти вам, если вы делаете деплой большого куска кода или деплоите работу нескольких человек, которые долго трудились и в итоге, что-то пойдет не так, вернутся на рабочий вариант используя гит будет сложнее.
Подытожим, мы будем деплоить сайт на yii2 advanсed при помощи git и shipitjs, используемая OC на локале ubuntu, на сервере аналогично ubuntu/debian.
Будем считать, что у вас git и shipitjs уже установлены и настроены, если нет тогда вам сюда: Deploy приложения с помощью Shipitjs.
Подготавливаем серверную часть
Подключаемся по ssh к серверу, создаем папку:
$ mkdir /var/www/site
Клонируем репозиторий в созданную папку:
$ git clone git@github.com:userName/example.git /var/www/site
Подготовка сервера окончена)
Локальные настройки
Создаем в корне проекта shipitfile.js файл:
module.exports = function (shipit) { shipit.initConfig({ default: { deployTo: '/var/www/site', key: '~/.ssh/id_rsa', branch : 'master', }, dev: { servers: 'user@dev_server.com' } prod: { servers: 'user@prod_server.com' } }); shipit.task('deploy', function () { return shipit.remote('cd '+shipit.config.deployTo+' && git checkout '+shipit.config.branch+' && git pull') .then(function (res) { shipit.remote('cd '+shipit.config.deployTo+' && php yii migrate/up --interactive=0'); }); }); };
Наш скрипт деплоя сайта запускается двумя командами (на локальной машине):
$ cd /home/user/project $ shipit dev deploy
Переходим в директорию с проектом, выполняем деплой нашего проекта.
В результате будет выполнены следующих шаги на удаленной машине (dev_server.com):
- Переход в директорию в которую необходимо развернуть сайт
- Переключение git на ветку master
- Загрузка изменений ветки master в папку
- Выполнение миграции базы данных для yii2
Первые три шага описаны в одной команде в файле shipitfile.js (вместо переменных подставлены реальные значения):
cd /var/www/site && git checkout master && git pull
Последний шаг - миграция базы данных для yii2:
cd /var/www/site && php yii migrate/up --interactive=0
P. S. После первого деплоя сайта на хостинге необходимо запустить скрипт инициализации yii2, а после настроить конфиги.
$ cd /var/www/site $ php init
Комментарии
Супер, по тегу Deploy уже целый раздел можно делать) http://кодер.укр/записи/deploy-приложения-с-помощью-shipitjs
ОтветитьНадо написать еще пару статей о деплое сайта с использованием разных технологий и вот уже есть выбор на любой вкус.
Причем хочу заметить, что все примеры рабочие, что немаловажно. Теперь читаю про деплой только здесь, т.к. на остальных небезызвестных сайта для работы нужен бубен и гугл, а тут все стартует сразу. Авторам @Юрий Черников и @кодер.укр респект. Видно, что знают свое дело!
Мне понравилась, так же как и предыдущая статья. Автор молодец!
Ответить