Могут ли изображения докеры кэша Travis CI?

Можно ли добавить параметр для кэширования моего образа докера где-нибудь в конфигурации travis? Мой - это более крупное изображение докера, и для его загрузки требуется некоторое время.

Какие-либо предложения?

Ответ 2

Я только что нашел следующий подход, как обсуждалось в этой статье.

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

Ответ 3

Это работает для меня:

  • Обновите желаемое имя образа докера вместо <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>...