在部署阶段发布 CI GitLab
Posted
技术标签:
【中文标题】在部署阶段发布 CI GitLab【英文标题】:Issue CI GitLab on deploy stage 【发布时间】:2022-01-11 16:55:40 【问题描述】:我在 GitLab 上的 CI 管道存在问题,在服务器 Cloudways 上进行阶段部署。 CI 在 prod 中正确部署...但失败并出现错误:
错误:无法锁定配置文件 /home/123456.cloudwaysapps.com/xxxxxxx/.gitconfig:权限被拒绝
我读到这是 .gitconfig.lock 的问题,但我在此路径中没有看到任何文件“gitconfig.lock”或 .git config。
请问您对此有何看法?错误是什么?
deploy:
stage: deploy
before_script:
- apt-get update -y && apt-get install -y git openssh-client
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
script:
- ssh -o StrictHostKeyChecking=no $APP_USER@$APP_HOST "cd public_html/ && git config --global user.name "my-user-name" && git pull origin main && composer dump-autoload && php bin/console d:m:m -n"
only:
- main
这里的屏幕:
【问题讨论】:
如果您需要做的只是拉取更改,那么您不需要设置作业的 git config 部分。如果这是需要完成的事情,那么您最好登录到服务器并只运行一次配置,而不是让 CI 每次都设置相同的配置。因此,如果您删除作业的git config
部分会发生什么,它是否有效?
【参考方案1】:
如评论所述,拉动不需要git config
。
但是,为了进行更多调查,请将其替换为 ls -alrth $HOME && id -a
,以便:
~/.gitconfig
查看是否需要更改其chmod
以使其可写
【讨论】:
嗨@VonC,只是一个小问题:在我的Debian上,man id
告诉我-a → ignore, for compatibility with other versions
;您是否知道-a
选项产生某些作用的其他上下文/操作系统? (我猜可能是一种“全部”:)
@ErikMD 是的,它适用于-all
。在您的情况下,id
就足够了。以上是关于在部署阶段发布 CI GitLab的主要内容,如果未能解决你的问题,请参考以下文章