背景說明:
項目采用的是代碼提交后會自動觸發gitlab-runner功能,然后編譯項目,制作成docker鏡像,上傳到nexus倉庫。
使用一段時間后出現個問題,在項目編譯后生成的jar包這兒報錯,具體信息如下:
這個報錯信息是gitlab-runner工具的報錯信息
ERROR: Could not create cache adapter error=cache factory not found: factory for cache adapter "" was not registere
gitlab編譯頁面也會顯示有關的錯誤信息,這里忘了截圖保存了。
排查一番后得知,不是gitlab-runner的問題,而是gitlab的問題
具體問題如下:
編譯項目后生成的jar包會提供給Dockerfile文件使用,這里采用的是artifacts。
但是每次編譯后都會在gitlab的對應目錄下生成一個目錄存放這個jar包,默認路徑是:/var/opt/gitlab/gitlab-rails/shared/artifacts
里面的目錄是隨機生成的用來存放每次使用gitlab-runner編譯后生成的jar包。
時間長了之后這個目錄會占用比較大的磁盤空間,當磁盤空間不夠的時候再次編譯就會報上述錯誤。
自動解決辦法
使用管理員賬號登錄gitlab,找到設置中的CI/CD,設置artifacts的有效期,這樣一來就不用手動刪除了,到期自動刪除
這里的解決辦法是刪除這個目錄下除了tmp文件夾外的所有文件夾,也就是刪除已經存在的存放jar包的文件夾,然后再次使用gitlab-runner工具編譯操作就可以了