Для организации деплоя сайта без использования Docker на хостинге с помощью хуков GitHub или Bitbucket, вам потребуется следующий набор инструментов и настроек.
- Настройка хостинга:
- Выберите хостинг-провайдера, который поддерживает Git-репозитории и предоставляет возможность установки пользовательских хуков. Некоторые из таких провайдеров включают Heroku, AWS Elastic Beanstalk, DigitalOcean.
- Создайте аккаунт на выбранном провайдере и создайте новый проект или приложение.
- Создание Git-репозитория:
- Создайте новый репозиторий на GitHub или Bitbucket.
- Склонируйте репозиторий себе на локальную машину с помощью команды
git clone <URL репозитория>
.
- Настройка хука на хостинге:
- Установите новый хук-скрипт на хостинге, который будет запускаться при обновлении репозитория.
- В этом скрипте можно указать действия, которые должны выполняться при каждом обновлении репозитория, например, обновление веб-сервера или перезапуск службы.
- Самый распространенный способ создания хука - использование специальных файлов-хуков, указываемых в директории
.git/hooks/
в репозитории.
- Настройка автоматического деплоя:
- Создайте файл конфигурации деплоя, обычно называемый
deploy.sh
илиapp.yml
и разместите его в корневом каталоге вашего проекта. - В этом файле указываются команды, необходимые для развертывания вашего приложения на хостинге, включая установку необходимых зависимостей и запуск приложения.
- Пример
deploy.sh
файла:
#!/bin/bash # Обновление репозитория git pull origin master # Установка зависимостей npm install # Запуск приложения npm start
- Подготовьте файл
deploy.sh
для выполнения команд:
chmod +x deploy.sh
- Подключение хука на репозитории:
- В корневой директории репозитория создайте директорию
.git/hooks/
. - Скопируйте файл
deploy.sh
в директорию.git/hooks/
и переименуйте его вpost-receive
.
cp deploy.sh .git/hooks/post-receive
- Убедитесь, что файл
post-receive
доступен для выполнения команд:
chmod +x .git/hooks/post-receive
- Каждый раз, когда будет выполняться
git push
в репозиторий, хук автоматически выполнит команды из файлаpost-receive
, что приведет к автоматическому деплою вашего сайта на хостинге.
В результате, при каждом обновлении вашего репозитория на GitHub или Bitbucket, хук на хостинге будет запускать команды из файла post-receive
, что позволит вам автоматически развернуть ваш сайт на хостинге.