Travis CI可以缓存码头图像吗?

Nag*_*aga 11 caching travis-ci docker

是否可以添加设置以在travis配置中的任何位置缓存我的泊坞窗图像?我是一个更大的码头图像,下载需要一段时间.

有什么建议 ?

SCo*_*vin 15

今天(2019 年 10 月)最简单的解决方案是将以下内容添加到.travis.yml

cache:
  directories:
  - docker_images

before_install:
- docker load -i docker_images/images.tar || true

before_cache:
- docker save -o docker_images/images.tar $(docker images -a -q)
Run Code Online (Sandbox Code Playgroud)


Jak*_*olý 6

有关答案,请参阅在 Build #5358 上缓存 Docker 图像 。对于 Travis 上现在可用的 Docker 1.12,建议手动缓存图像。对于 Docker 1.13,您可以--cache-from在 Travis 上使用它。

节省:

before_cache:
  # Save tagged docker images
  - >
    mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
    | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz'
Run Code Online (Sandbox Code Playgroud)

加载:

before_install:
  # Load cached docker images
  - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi
Run Code Online (Sandbox Code Playgroud)

还需要声明一个缓存文件夹:

cache:
  bundler: true
  directories:
    - $HOME/docker
Run Code Online (Sandbox Code Playgroud)

  • 您介意将代码添加到您的答案中吗?链接可能会在某些时候中断。 (3认同)