0

我正在通过 CI/CD 管道部署我的 laravel 项目,当我触发部署分支时出现此错误

这是我的 gitlab-ci.yml 代码

before_script:
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | ssh-add -
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

.change_file_permissions: &change_file_permissions |
  find . -type f -not -path "./vendor/*" -exec chmod 664 {} \;
  find . -type d -not -path "./vendor/*" -exec chmod 775 {} \;

deploy:
  stage: deploy
  script:
    - *change_file_permissions
    - ssh root@mywebsite.com "cd /home/root/public_html/files && git pull "git@gitlab.com:groupname/project/nas-project.git" dev && exit"
  environment:
    name: live
    url: mywebsite.com
  only:
    - dev
4

1 回答 1

0

有两个可能的问题,它们都可能同时发生。

  1. 您在构建中提供的 SSH KEY 是否能够签出存储库?aka 它是在您的 GitLab 用户 sshkeys 中列出(不推荐)还是作为部署密钥添加到存储库?

    如果不是,这可能是您无法退房的原因。

  2. ForwardAgent Yes您是否已为您的 ssh 配置激活?

    SSH 不会自动将您用于连接服务器的密钥转发到服务器本身。这意味着,它可能在您期间不可用git checkout,因此不会被使用。请参阅https://www.cloudsavvyit.com/25/what-is-ssh-agent-forwarding-and-how-do-you-use-it/关于这一点,并相应地调整您的构建

于 2021-10-26T18:58:21.190 回答