Gitlab CI/CD缓存

Gitlab CI/CD缓存,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我想在我的Gitlab项目上尝试缓存,下面是文档-。我有一个特定于项目的runner,正在使用docker executor,但我得到了一个错误 cat: vendor/hello.txt: No such file or directory 我将如何着手解决此问题?我在我的runner配置中设置了disable\u cache=false,但这没有帮助。 编辑:使用私有gitlab实例12.3。我使用分布式缓存实现了这一点,我发现这很容易。首先,您需要一个S3存储桶或与S3兼容的存储,如mi

我想在我的Gitlab项目上尝试缓存,下面是文档-。我有一个特定于项目的runner,正在使用docker executor,但我得到了一个错误

cat: vendor/hello.txt: No such file or directory
我将如何着手解决此问题?我在我的runner配置中设置了
disable\u cache=false
,但这没有帮助。
编辑:使用私有gitlab实例12.3。

我使用分布式缓存实现了这一点,我发现这很容易。首先,您需要一个S3存储桶或与S3兼容的存储,如minio。您可以使用以下命令在gitlab runner所在的本地设置MinIo

docker run -it --restart always -p 9005:9000 \
        -v /.minio:/root/.minio -v /export:/export \
        --name minio \
        minio/minio:latest server /export
检查服务器的IP地址:

hostname --ip-address
您的缓存服务器将在我的缓存IP:9005可用

创建一个转轮将使用的铲斗:

sudo mkdir /export/runner
sudo cat /export/.minio.sys/config/config.json | grep Key
在这种情况下,runner是bucket的名称。如果你选择一个不同的桶,那么它将是不同的。所有缓存都将存储在/export目录中

读取MinIO的访问和密钥,并使用它配置运行程序:

sudo mkdir /export/runner
sudo cat /export/.minio.sys/config/config.json | grep Key
下一步是配置运行程序以使用缓存。下面是示例config.toml

[[runners]]
  limit = 10
  executor = "docker+machine"
  [runners.cache]
    Type = "s3"
    Path = "path/to/prefix"
    Shared = false
    [runners.cache.s3]
      ServerAddress = "s3.example.com"
      AccessKey = "access-key"
      SecretKey = "secret-key"
      BucketName = "runner"
      Insecure = false
我希望这个答案能对你有所帮助

参考:


我使用分布式缓存实现了这一点,我发现这很容易。首先,您需要一个S3存储桶或与S3兼容的存储,如minio。您可以使用以下命令在gitlab runner所在的本地设置MinIo

docker run -it --restart always -p 9005:9000 \
        -v /.minio:/root/.minio -v /export:/export \
        --name minio \
        minio/minio:latest server /export
检查服务器的IP地址:

hostname --ip-address
您的缓存服务器将在我的缓存IP:9005可用

创建一个转轮将使用的铲斗:

sudo mkdir /export/runner
sudo cat /export/.minio.sys/config/config.json | grep Key
在这种情况下,runner是bucket的名称。如果你选择一个不同的桶,那么它将是不同的。所有缓存都将存储在/export目录中

读取MinIO的访问和密钥,并使用它配置运行程序:

sudo mkdir /export/runner
sudo cat /export/.minio.sys/config/config.json | grep Key
下一步是配置运行程序以使用缓存。下面是示例config.toml

[[runners]]
  limit = 10
  executor = "docker+machine"
  [runners.cache]
    Type = "s3"
    Path = "path/to/prefix"
    Shared = false
    [runners.cache.s3]
      ServerAddress = "s3.example.com"
      AccessKey = "access-key"
      SecretKey = "secret-key"
      BucketName = "runner"
      Insecure = false
我希望这个答案能对你有所帮助

参考:


多亏了这篇文章,我才设法解决了这个问题。 基本上增加

variables:
GIT_CLEAN_FLAGS: none
它成功了。
@比拉尔的回答肯定是正确的,但我在寻找稍微不同的解决方案。

多亏了这篇文章,我才设法解决了这个问题。 基本上增加

variables:
GIT_CLEAN_FLAGS: none
它成功了。
@比拉尔的回答肯定是正确的,但我在寻找稍微不同的解决方案。

但有必要吗?在文档中,它说“缓存:存储在安装GitLab Runner的位置,如果启用了分布式缓存,则将其上载到S3。”我没有启用分布式缓存,因为我只使用一个运行程序。我无法将它们存储在安装gitlab runner的同一台服务器上,但有必要吗?在文档中,它说“缓存:存储在安装GitLab Runner的位置,如果启用了分布式缓存,则将其上载到S3。”我没有启用分布式缓存,因为我只使用一个运行程序。我无法将它们存储在安装gitlab runner的同一台服务器上,