WedX - журнал о программировании и компьютерных науках

Разверните веб-сайт Symfony с Git на общем сервере OVH

Я хочу настроить автоматическое развертывание моего веб-сайта Symfony непосредственно с git на мой сервер ovh (предложение производительности — с доступом по SSH).

Я следовал этим инструкциям ovh: https://docs.ovh.com/fr/fr/web/hosting/24-days/day07/

  1. установлен композитор в $HOME/bin
  2. создал удаленный репозиторий git $HOME/depot_git_beta с помощью git init --bare
  3. создал файл пост-получения в $HOME/depot_git_beta/hooks

    #!/bin/bash
    
    # Hook post-receive
    
    # Force source bash profile to update PATH
    source ~/.bash_profile
    source ~/.bashrc
    
    GIT_REPO=$HOME/depot_git_beta
    DEPLOY_DIR=$HOME/beta
    
    # Go to deploy directory to load ovhconfig
    cd $DEPLOY_DIR
    ovhConfig
    cd -
    
    while read prevsha1 newsha1 ref
    do
        if [[ $ref =~ .*/develop$ ]];
        then
            echo "Deploying develop branch to beta..."
            git --work-tree=$DEPLOY_DIR --git-dir=$GIT_REPO checkout -f
            cd $DEPLOY_DIR
    
            # Install vendors
            composer install --no-dev --no-interaction
            echo "Vendors updated!"
    
            # Update database
            php bin/console doctrine:schema:update --force
            echo "Database for beta environment updated!"
    
            # Clear cache
            php bin/console cache:clear --env=dev
            php bin/console cache:clear --env=prod
            echo "Cache cleared!"
    
        else
            echo "Ref: $ref isn't develop. Nothing to do on beta"
        fi
    done
    
  4. добавить удаленный репозиторий

    git remote add ovh [email protected]:depot_git_beta
    
  5. но когда я делаю git push ovh develop, похоже, он работает, git bash сообщает, что он обновлен, но на сервере ovh, похоже, ничего не произошло.

Любая идея, что пошло не так или где я должен искать в первую очередь?

30.08.2017

  • Если git сообщает об обновлении, то любые хуки на стороне сервера не будут выполняться, можете ли вы добавить новую фиксацию и нажать ее? Любой вывод вашего git-хука должен отображаться на стороне клиента, когда вы нажимаете 31.08.2017
  • Используйте git commit --allow-empty -m 'push to execute post-receive', чтобы активировать хук после получения. См. stackoverflow.com/a/28703197/6162120. 31.08.2017
  • Спасибо за помощь мне. К сожалению, ничего не работает. Чтобы было ясно, вот что я сделал: 1/ нажмите в git bash: $ git push ovh develop и он выполнил это: Counting objects: 15254, done. Delta compression using up to 4 threads. Compressing objects: 100% (11927/11927), done. Writing objects: 100% (15254/15254), 66.97 MiB | 631.00 KiB/s, done. Total 15254 (delta 6552), reused 10256 (delta 2703) To ftp.clusterXXX.hosting.ovh.net:depot_git_beta * [new branch] develop -> develop 31.08.2017
  • И 2/ я сделал git commit --allow-empty -m 'push to execute post-receive' и ничего не происходит, даже папка не создается 31.08.2017
  • Вы уверены, что $HOME/depot_git_beta/hooks/post-receive является исполняемым? 31.08.2017
  • да : -rwxr-xr-x+ 31.08.2017
  • Замените первую строку на #!/bin/bash -x, чтобы включить эхо. И убедитесь, что каталог DEPLOY_DIR существует на сервере. 31.08.2017
  • Давайте продолжим обсуждение в чате. 31.08.2017

Ответы:


1

Проблема заключалась в том, что, поскольку я не развертывал основную ветку, мне нужно было уточнить ее в этой строке:

$ git --work-tree=... --git-dir=... checkout -f develop

Посмотрите этот очень полезный ответ!

(И спасибо, Пиарсон, за помощь в поиске решения!)

31.08.2017
Новые материалы

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


Для любых предложений по сайту: [email protected]