是否可以添加设置以在travis配置中的任何位置缓存我的泊坞窗图像?我是一个更大的码头图像,下载需要一段时间。
有什么建议吗?
答案 0 :(得分:4)
请参阅Caching Docker Images on Build #5358
了解答案。对于现在可在Travis上使用的Docker 1.12,建议manually cache the images。对于Docker 1.13,当它在Travis上时可以使用它的--cache-from
。
答案 1 :(得分:4)
关于Travis文档,建议不要缓存Docker映像 https://docs.travis-ci.com/user/caching/#things-not-to-cache
答案 2 :(得分:3)
今天(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)
答案 3 :(得分:1)
我刚刚发现了article中讨论的以下方法。
services:
- docker
before_script:
- docker pull myorg/myimage || true
script:
- docker build --pull --cache-from myorg/myimage --tag myorg/myimage .
- docker run myorg/myimage
after_script:
- docker images
before_deploy:
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
deploy:
provider: script
script: docker push myorg/myimage
on:
branch: master
答案 4 :(得分:0)
这对我有用:
<IMAGE_NAME_HERE>
(3个地方)。docker save
可以处理多个图像,只需确保在尝试保存它们之前将其拉出即可。services:
- docker
cache:
directories:
- docker-cache
before_script:
- |
filename=docker-cache/saved_images.tar
if [[ -f "$filename" ]]; then docker load < "$filename"; fi
mkdir -p docker-cache
docker pull <IMAGE_NAME_HERE>
docker save -o "$filename" <IMAGE_NAME_HERE>
script:
- docker run <IMAGE_NAME_HERE>...