考虑.gitlab-ci.yml
:
variables:
MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2/repository"
cache:
key: "M2"
paths:
- /root/.m2/repository
直接在gitlab中运行时可以正常工作,但在运行时不能在本地运行:
gitlab-runner exec docker test
如果我像这样在本地运行它,我可以看到Successfully extracted cache
之类的消息,但它会重新下载所有maven依赖项,在我的情况下意味着下载数百兆字节。
我看不出本地和远程运行它们之间的区别,我猜它们都应该一样吗?
此缓存存储在何处?我可以以某种方式验证存储的内容吗?
答案 0 :(得分:1)
与this issue一样,您需要将m2缓存文件夹放入卷中,或者容器每次都从头开始(空缓存),让maven下载所有内容全部再一次。
该问题还报告,而不是使用卷:
如果您将回购指向
cache.paths
中的内容,则无需指定/cache
值;我目前正在使用的版本如下,我没有看到Removing..
的“.m2
”行:
image:
maven:3.3.9-jdk-8
variables:
MAVEN_OPTS: -Dmaven.repo.local=/cache/maven.repository
test:
script: "mvn test"
但使用音量仍然是最便携的解决方案:
我们编辑配置以包含名为
host-cache
的本地docker主机卷,我们只需将/cache
引用替换为/host-cache
,而<td> <a *ngIf="(books.status== 'FAILED')" (click)="openWindow(books.id)" [style.color]="visitedColor">{{books.id}}</a></td>
不依赖于任何未记录的运行程序默认值。< / p>