# #ssh #gitlab #gitlab-ci
Вопрос:
Я создал сценарий развертывания через ssh и gitlab, но когда выполняется сценарий git pull, все выглядит как уже обновленное, и я даже не могу запустить команды composer
before_script: - apt-get update -qq - apt-get install -qq git # Setup SSH deploy keys - 'which ssh-agent || ( apt-get install -qq openssh-client )' - eval $(ssh-agent -s) - ssh-add lt;(echo "$SSH_PRIVATE_KEY") - mkdir -p ~/.ssh - '[[ -f /.dockerenv ]] amp;amp; echo -e "Host *ntStrictHostKeyChecking nonn" gt; ~/.ssh/config' deploy_staging: type: deploy environment: name: staging url: test.ro script: - ssh -p 28785 test@test "git checkout development amp;amp; git pull" - cd server - composer i - composer optimize - php artisan migrate - cd .. - cd client - npm i - npm run dev - exit only: - development
$ apt-get update -qq $ apt-get install -qq git $ which ssh-agent || ( apt-get install -qq openssh-client ) /usr/bin/ssh-agent $ eval $(ssh-agent -s) Agent pid 266 $ ssh-add lt;(echo "$SSH_PRIVATE_KEY") Identity added: /dev/fd/63 (/dev/fd/63) $ mkdir -p ~/.ssh $ [[ -f /.dockerenv ]] amp;amp; echo -e "Host *ntStrictHostKeyChecking nonn" gt; ~/.ssh/config $ ssh -p 28785 $ git pull $ Already up to date
Разве я не устанавливаю соединение через ssh нормально?
Ответ №1:
Сначала попробуйте заменить свой ssh-шаг на:
ssh -p 28785 test@test "id -a amp;amp; ls -alrth amp;amp; pwd amp;amp; git status amp;amp; git remote -v"
Таким образом, вы можете быть уверены, что вы:
- в правильном пути (который по умолчанию
/home/test
был бы нечетным путем для представления Git) - в реальном локальном репозитории Git и в правой ветви (отсюда
git status
) - ссылка на нужный удаленный сервер (имеется в виду удаленный репозиторий, в который вы отправили новые коммиты, которые следует удалить)