我没有设法配置缓存目录,但不知何故它不起作用。
我的 config.toml:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
cache_dir = /tmp/gitlab-runner-cache
...都在 / etc / gitlab-runner / config.toml 和~/.gitlab-runner / config.toml 中
我的.gitlab-ci.yml:
image: docker:latest
services:
- docker:dind
cache:
key: "myCache"
paths:
- ${CI_PROJECT_DIR]/.m2/
variables:
DOCKER_DRIVER: overlay
MEN_OPTS: -Dmaven.repo.local=${CI_PROJECT_DIR}/.m2
stages:
- build
- acceptance
maven-build:
image: maven:3.3-jdk-8
stage: build
script: "mvn clean package"
artifacts:
paths:
- target/*.jar
maven-acceptance:
dependencies:
- maven-build
image: maven:3.3-jdk-8
stage: acceptance
script: "mvn verify"
当我尝试:gitlab-runner exec s maven-build
我得到的错误:
ERROR: Could not create cache adapter error=cache factory not found: factory for cache adapter "" was not registered
构建成功,但.m2 存储库没有缓存...
因此,我有两个问题:
如何知道 gitlab-runner 实际上是否需要我的 config.yml?
什么是缓存的正确配置?
提前谢谢!
我不确定您使用的是哪个版本的 Gitlab,但版本 12 支持 S3 兼容存储或 GCS 作为缓存提供程序(see thes docs),但没有像cache_dir = /tmp/gitlab-runner-cache
这样的本地缓存文件夹。
我遇到的问题是,我忘了将Type = "s3"
添加到 Runner 配置的[runners.cache]
部分:
[runners.cache]
Type = "s3"
Shared = true
[runners.cache.s3]
ServerAddress = ...
我有同样的错误(“缓存工厂未找到”),问题是cache_dir
的值不包含在[runners.docker]
/volumes
配置。
cache_dir
says:
如果使用 docker 执行器,则此目录需要包含在其 volumes 参数中。
在将路径添加到volumes
之后,缓存在没有 S3 或其他分布式缓存的情况下工作。
以下是工作/etc/gitlab-runner/config.toml
的相关部分:
[[runners]]
executor = "docker"
cache_dir = "/me/gitlab-runner/cache"
[runners.docker]
volumes = ["/cache", "/me/gitlab-runner/cache"]
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(32条)