Как я могу сделать "git pull" автоматически при запуске моего сервера

Я использую экземпляр ec2 @ubuntu. Я пытаюсь автоматически выполнить "git pull" после того, как я запустил новый экземпляр из AMI. Репо dir уже в моем AMI, все, что мне нужно, обновляет репо.

что я делаю сейчас, я положил "git pull origin master" в rc.local.... но он не работает....

+5
источник поделиться
5 ответов

Я получил его для работы.

sudo -u ubuntu -i git - git -dir =/home/ubuntu/blastoff/.git --work-tree =/home/ubuntu/blastoff/fetch origin sudo -u ubuntu -i git - git -dir =/home/ubuntu/blastoff/.git --work-tree =/home/ubuntu/blastoff/merge origin/master

+4
источник

git --git-dir=some/dir/.git pull origin master должен работать

+2
источник

Правильное место для размещения кода не /etc/rc.local/, а ~/.profile. Затем вы можете запускать команды как зарегистрированный пользователь без необходимости sudo или su изменять пользователя, выполняющего команды.

0
источник

Принимая примечания от qaru.site/questions/12613/... и ваш рабочий ответ выше, вы можете применить это к потенциально нескольким папкам, выполнив что-то вроде этого в вашем файле rc.local (также только тянет текущую ветвь вместо того, чтобы всегда быть мастером):

#!/bin/bash -e
# /etc/rc.local

# Ensure folders in array have a trailing slash!

declare -a folders=("/var/www/html/project1/" "/var/www/html/project2/" "/some/other/location/")

# Update to latest in all above folders

for i in "${folders[@]}"
do
        sudo -u ubuntu -i git --git-dir=$i/.git --work-tree=$i fetch origin
        sudo -u ubuntu -i git --git-dir=$i/.git --work-tree=$i pull
done

exit 0
0
источник

Если вы хотите сделать git pull, когда экземпляр был создан (первая загрузка), вы можете использовать cloud-init.

Проверьте документы AWS передать оболочку script экземпляру с пользовательскими данными

Это может быть автоматизировано с помощью ansible/saltstack и т.д., но для тестирования вы можете вручную загрузить script. На шаге 3 "Настроить экземпляр" в "Предварительных деталях" выберите опцию "Файл" и поместите script ниже.

введите описание изображения здесь

Вы можете загрузить там свой пользовательский script:

#!/bin/sh

echo "git pull or any other custom commands here"
0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос