代码改变世界

记一次gitlab artifact问题

2025-09-12 03:21  蜡笔小旧  阅读(6)  评论(0)    收藏  举报

今天前端告诉我前端发布越来越慢了. 一看gitlab的deploy文件1千多个.

就开始查已开始查问题,

1. 一直觉得是前端build的问题,后来看了下build的文件只有几十个. 那就不是build的问题.

2. 开始怀疑是cache把dist目录缓存了, 后面发现也没有.

3. 怀疑是artifact lifecycle的问题, 去建了个新项目也没有问题,artifact只会存在于整个pipeline. expire_in也只是说保存在服务器中的时间.

看了下artifact在web上是对的, 但是在disk打印出来数量不对.

后面想了想最新好像是切了gitlab runner, 可能是这个问题导致的.

然后我试着切换了下gitlab runner果然artifact只有几十个文件.

试着用命令上服务器测试了下:

find / -type f -name "xxx.js"

果然在一个docker的volume目录里面, 那就印证了我的猜想:

before: [build:  runer1,  deploy: runner1]

after: [build:  runer2,  deploy: runner1]

由于deploy带了策略GIT_STRATEGY: none, 导致gitlab不会把老的dist文件夹清除.

之后就是一直用老的dist, 并且每次都会加入新的文件到dist. 因为gitlab会一直使用老的docker volume 挂到docker container上面.

所以只要删除dist文件夹就好了.