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
主要是因為沒有賬號/用戶名信息,無法進行操作
解決方式
-
用ssh的方式拉取代碼,在vm上面設置ssh秘鑰信息
-
如果用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了