Gitlab CI/CD 缓存
Gitlab CI/CD caching
我想按照此处的文档在我的 Gitlab 项目上尝试缓存 - https://docs.gitlab.com/ee/ci/caching/#how-archiving-and-extracting-works。我有一个特定于项目的运行器并正在使用 docker 执行器,但出现错误
cat: vendor/hello.txt: No such file or directory
我该如何解决这个问题?我在我的跑步者配置中设置了 disable_cache = false
,但这没有帮助。
编辑:使用私有 gitlab 实例 12.3.
我使用分布式缓存实现了这一点,我发现这很容易。首先,您需要一个 S3 存储桶或 s3 兼容存储,例如 minio。您可以使用以下命令在本地设置 MinIo,其中 gitlab runner 存在。
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
您的缓存服务器将在 MY_CACHE_IP:9005
可用
创建一个将由 Runner 使用的桶:
sudo mkdir /export/runner
在这种情况下,runner 是存储桶的名称。如果你选择不同的桶,那么它就会不同。所有缓存将存储在 /export 目录中。
读取MinIO的Access和Secret Key并用它来配置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
希望这个回答对您有所帮助
参考:
https://docs.gitlab.com/runner/install/registry_and_cache_servers.html
https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching
多亏了这个 post https://gitlab.com/gitlab-org/gitlab-runner/-/issues/336#note_263931046,我设法解决了这个问题。
基本加
variables:
GIT_CLEAN_FLAGS: none
它奏效了。
@Bilal 的回答绝对正确,但我一直在寻找稍微不同的解决方案。
我想按照此处的文档在我的 Gitlab 项目上尝试缓存 - https://docs.gitlab.com/ee/ci/caching/#how-archiving-and-extracting-works。我有一个特定于项目的运行器并正在使用 docker 执行器,但出现错误
cat: vendor/hello.txt: No such file or directory
我该如何解决这个问题?我在我的跑步者配置中设置了 disable_cache = false
,但这没有帮助。
编辑:使用私有 gitlab 实例 12.3.
我使用分布式缓存实现了这一点,我发现这很容易。首先,您需要一个 S3 存储桶或 s3 兼容存储,例如 minio。您可以使用以下命令在本地设置 MinIo,其中 gitlab runner 存在。
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
您的缓存服务器将在 MY_CACHE_IP:9005
可用创建一个将由 Runner 使用的桶:
sudo mkdir /export/runner
在这种情况下,runner 是存储桶的名称。如果你选择不同的桶,那么它就会不同。所有缓存将存储在 /export 目录中。
读取MinIO的Access和Secret Key并用它来配置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
希望这个回答对您有所帮助
参考:
https://docs.gitlab.com/runner/install/registry_and_cache_servers.html
https://docs.gitlab.com/runner/configuration/autoscale.html#distributed-runners-caching
多亏了这个 post https://gitlab.com/gitlab-org/gitlab-runner/-/issues/336#note_263931046,我设法解决了这个问题。 基本加
variables:
GIT_CLEAN_FLAGS: none
它奏效了。 @Bilal 的回答绝对正确,但我一直在寻找稍微不同的解决方案。