gitlab-cicd常見問題


1.權限禁止

報錯:warning:unable to access '/home/gitlab-runner/.config/git/attributes':Permission denied

權限問題,重新針對文件所在的最近一層文件夾賦予可執行權限

chmod -R 777 file

2. 流水線只能一個一個job去執行,不可並行打包的問題

主要是因為concurrent設置了1,只能有1個job並行執行,把concurrent參數改一下,比如改成6,就可以一次並行6個job了

vi /etc/gitlab-runner/config.toml

3. gitlab-runner 打包的直接地址在/home/gitlab-runner,是存放在系統盤,項目多的時候系統盤會爆,所有建議把數據放在數據盤;需要把打包目錄改一下,修改方式如下:

3.1 全局修改方法

vi/etc/systemd/system/ gitlab-runner.service

把基礎目錄改成:/var/www/gitlab-runner-build-dir

重啟runner

gitlab-runner restart

注意需要給gitlab-runner-build-dir目錄權限:chmod -R 777 gitlab-runner-build-dir

3.2 局部修改,針對每個runner修改

修改文件

vi /etc/gitlab-runner/config.toml

重置執行目錄:/var/www/gitlab-runner-build-dir

重啟runner

gitlab-runner restart

注意如果還沒有賦予權限,需要給gitlab-runner-build-dir目錄權限:chmod -R 777 gitlab-runner-build-dir

4. 環境打包報錯:error: you need to resolve your current index first ,need merge

主要是版本回退的時候,打包會導致vm上的打包跟實際分支回退的代碼不同步導致的合並沖突
例如下面打包testing_1.11.0_all分支代碼時,發現vm的cicd目錄分支代碼沖突了

進入到打包主機的打包目錄中查看

cd /var/www/html/ecpdoc
git status

發現一堆修改的件

解決方法
4.1. 先把當前分支強制切換到其他正常的分支(比如:haha分支

git checkout -f haha

然后查看切換到haha分支后是否還有文件修改,如果沒有就跳過,執行第2步

發現強制切換haha分支還是有修改沖突
再次切換到另外一個正常的分支(比如:lala分支

git checkout -f lala

然后查看切換到lala分支后是否還有文件修改,如果沒有修改,比如像下面這樣,那么就可以執行第二步;如果還有就重復上一步直到強制切換到一個正常的分支為止

4.2. 當前分支正常后,需要清理有問題的分支緩存

比如上面有問題的分支是test_1.1.0_all,執行命令

git branch -D testing_1.11.0_all

4.3. 再切換到需要打包的分支,testing_1.11.0_all分支,查看分支修改狀態發現內容恢復正常

git checkout testing_1.11.0_all
git status

4.4. 重新啟動cicd打包,即可打包成功

5. 報錯:fatal: reference is not a tree
需要檢查.gitlab-ci.yml文件格式是否有誤,很可能是沒有加流水線

6. cicd操作報錯:fatal:could not read Username for 'xxxx':No such device or address
主要是因為沒有賬號/用戶名信息,無法進行操作

解決方式

  1. 用ssh的方式拉取代碼,在vm上面設置ssh秘鑰信息

  2. 如果用http的方式拉取代碼的話,在.git/config文件路徑寫上賬號名稱+密碼的信息,例如:http://用戶名稱:密碼@yourgitlab.com/xxx

vi .git/config

7. cicd報錯

報錯:cannot create directory at 'src/assets/plugins/laydate':Permission denied

解決方式
進入到gitlab-runner-build-dir,把對應的緩存文件刪除即可 rm -f xxx

8.給gitlab設置root權限

ps aux|grep gitlab-runner #查看當前runner用戶

sudo gitlab-runner uninstall #刪除gitlab-runner

gitlab-runner install --working-directory /home/gitlab-runner --user root #安裝並設置--user(例如我想設置為root)

sudo service gitlab-runner restart #重啟gitlab-runner

ps aux|grep gitlab-runner #再次執行會發現--user的用戶名已經更換成root了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM