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