当我尝试通过 gitlab 执行自动部署时检索数据时出现的问题

Posted

技术标签:

【中文标题】当我尝试通过 gitlab 执行自动部署时检索数据时出现的问题【英文标题】:The problem when retrieving data when I try to perform an automatic deployment through gitlab 【发布时间】:2021-12-26 23:32:51 【问题描述】:

我通过 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 <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    
deploy_staging:
  type: deploy
  environment:
    name: staging
    url: test.ro
  script:
    - ssh -p 28785 test@test "git checkout development && 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 <(echo "$SSH_PRIVATE_KEY")
Identity added: /dev/fd/63 (/dev/fd/63)
$ mkdir -p ~/.ssh
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
$ ssh -p 28785 
$ git pull
$ Already up to date

我不是通过 ssh 建立连接好吗?

【问题讨论】:

【参考方案1】:

首先尝试将您的 ssh 步骤替换为:

ssh -p 28785 test@test "id -a && ls -alrth && pwd && git status && git remote -v"

这样,您可以确保您是:

在正确的路径中(默认为/home/test,Git 视图的奇怪路径) 在实际的本地 Git 存储库和正确的分支中(因此是 git status) 引用正确的远程(意味着您已推送新提交的远程存储库,应将其拉出)

【讨论】:

以上是关于当我尝试通过 gitlab 执行自动部署时检索数据时出现的问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 GitLab 部署 Azure 数据工厂管道

Redhat Ansible Tower 和 Gitlab 部署

构建在gitlab中自动运行

使用 Maven 在 gitlab 中运行(Docker)测试容器

gitlab根据hook钩子自动化部署

使用gitlab cicd自动合并分支