У нас есть VPS на linode и код, размещенный на gitHub. Как мы настраиваем это, когда мы нажимаем gitHub, он также автоматически перемещается на наш linode-сервер. Мы используем PHP на линейном сервере.
Спасибо.
У нас есть VPS на linode и код, размещенный на gitHub. Как мы настраиваем это, когда мы нажимаем gitHub, он также автоматически перемещается на наш linode-сервер. Мы используем PHP на линейном сервере.
Спасибо.
Вероятно, вы захотите использовать GitHub post-receive hooks.
Таким образом, GitHub будет отправлять POST в поставляемый URL-адрес, когда кто-то подталкивает к репо. Просто напишите короткий PHP script для запуска на вашем линейном VPS и вытащите его из GitHub, когда он получит указанный POST.
Я написал небольшой небольшой пост-приемный сервис на Github
Сопоставление локальных путей репозитория с URL-адресами репозитория в файле конфигурации Сервер будет получать запросы от github и запускать git по пути локального репозитория Он также запускает оболочку script для развертывания после этого, если вы предоставляете одинВ итоге я создал свой собственный рудиментарный инструмент развертывания (как и Karl, но на PHP), который автоматически вытащил новые обновления из репо - https://github.com/jesalg/SlimJim В основном он прослушивает github post-receive-hook и использует прокси-сервер для запуска обновления script.
Возможно, я вне контекста, но я предпочитаю вручную выбирать, куда нажать из моей командной строки, например: git push linode
Для этого я создаю контейнер хранилища на моем linode-сервере и создаю крюк после приема, который проверяет мою папку на последнюю нажатую фиксацию
Создайте контейнер git repo
mkdir /var/repo && cd /var/repo
git --bare init
Создайте крюк после приема в /var/repo/hooks/
touch post-receive
nano post-receive
chmod +x post-receive
пост-получать контент
#!/bin/sh
git --work-tree=/var/www/ --git-dir=/var/repo checkout -f
В вашем локальном репозитории
git remote add linode [email protected]<linode ip|domain>:/var/repo
git push linode
ваш код теперь развернут
Вы можете обратиться к этому руководству:
Автоматическое обновление вашего сайта с помощью сервисных крючков GitHub:
Вкратце, он объясняет следующие шаги:
Создайте php файл в папке .git
на вашем сервере со следующим содержимым.
<?php `git pull`;?>
Установите ваш сервер для существования ключей SSH. Что-то вроде:
key. cat ~/.ssh/id_rsa.pub
Установите сервисный крючок на GitHub. Введите URL WebHook:
http://your.domain.com/path/to/yourfile.php
Когда все установлено. Файл будет развертывать всю работу на вашем сервере каждый раз, когда вы нажимаете на GitHub.