在GitLab运行器上配置缓存

问题描述 投票:7回答:1

我无法配置缓存目录,但是以某种方式无法使用。我什至不确定它是否需要config.toml文件。

我的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
  MAVEN_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 shell maven-build

我收到错误:

ERROR: Could not create cache adapter               error=cache factory not found: factory for cache adapter "" was not registered

构建成功,但未缓存.m2存储库...

因此,我有两个问题:

  1. 如何知道gitlab-runner是否实际使用了我的config.yml?
  2. 什么是正确的缓存配置?

提前感谢!

gitlab-ci-runner
1个回答
0
投票

我刚才遇到了同样的问题。我不确定您使用的是哪个版本的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 = ...
© www.soinside.com 2019 - 2024. All rights reserved.