[英]Gitlab-Runner: Permission denied on cloning from master
我正在尋找一種在我的項目中實現 CI/CD 管道的方法。 我決定使用 Gitlab 及其 gitlab-runner 技術。 我嘗試通過 docker 容器使用它,但經過 100 多次嘗試,我決定將它安裝在機器上。
我按照官方Gitlab 指南一步一步來。 一切正常; 我運行寄存器,正確填寫所有字段,然后我在 go 上編寫.gitlab-ci.yml:
image: docker:latest
services:
- docker:18.09.9-dind
stages:
- deploy
step-deploy-prod:
stage: deploy
only:
- master
script:
- docker-compose up -d --build
when: always
environment: master
正如您在查看 yml 文件時可以想象的那樣,當在 master 上執行一些操作時,管道啟動並執行 docker-compose up --build -d(有問題的項目是 PHP 應用程序,其中 Z9778840A01004B30C982ZA 數據庫通過部署 acompose )。
第一次運行:絕對完美; 管道啟動,構建正確執行並正確上線
第二次和之后的 140 次跑步:那是噩夢。 由於同樣的原因,超過 140 個構建失敗; 克隆存儲庫時,運行者似乎沒有對他的主目錄(/home/gitlab-runner/builds/...)的寫權限。
如果我手動刪除 builds/ runner 中的嵌套文件夾,但只運行一次,那么情況相同。
我嘗試過了:
你總是不應該忘記用after_script
部分停止你的容器。
但在您的情況下,您可以在工作之前使用GIT_STRATEGY清除存儲庫。
variables:
GIT_STRATEGY: none
帶有此修復程序的 yml 文件
image: docker:latest
services:
- docker:18.09.9-dind
stages:
- deploy
step-deploy-prod:
stage: deploy
only:
- master
script:
- docker-compose up -d --build
when: always
environment: master
variables:
GIT_STRATEGY: none
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.