在我们的CI/CD设置中,分为了三个阶段:编译、打包和发布,执行情况如下图所示。
查看日志,docker构建任务执行的时候报错如下
failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder988073443/DRaaSAC.jar: no such file or directory
此文件是从前面的job获得的,构建好之后会将其放入cache中。
在其他同事的测试中,该任务可成功运行。后来我将这个阶段的job改成了2个,然后这个docker任务就一直不成功。因为gitlab文档中描述,cache是在所有job中共享的,所以一开始并没有考虑cache的问题,而主要关注在运行环境和执行命令上。在多次确认没有问题的情况下,才对cache进行核查,发现docker任务的cache提取出来之后并没有文件。
考虑到同事的成功案例,我们两个的区别只在于他测试时没有并发任务,所以认为可能并发会引发cache的bug。为了确认,去查找了gitlab的issue,