Azure конвейеров: загрузка docker изображения несколько раз - PullRequest
0 голосов
/ 01 августа 2020

У нас есть один azure конвейер yml, который выполняет множество различных задач для тестирования микросервисов. У нас есть единый базовый контейнер docker, чтобы значительно ускорить загрузку зависимостей.

Проблема в том, что этот образ загружается на каждом этапе. Это частично лишает смысла использование docker контейнер, если мы не можем просто повторно использовать изображение для разных этапов. Часто загрузка изображения может занимать 1-5 минут на задание / этап.

Как мы можем использовать одно и то же изображение docker на разных этапах, не загружая его повторно?

name: $(Date:yyyyMMdd)$(Rev:.r)
resources:
  repositories:
  - repository: self
  containers:
  - container: azure_pipelines_deploy2
    image: azure_pipelines_deploy2:1.0.0
    endpoint: acr_connection
trigger:
  tags:
    include: [feature/*]
pr: 
  autoCancel: True # indicates whether additional pushes to a PR should cancel in-progress runs for the same PR. Defaults to true
  branches:
    include: [ master ]

stages: 
- stage: OneOfManyStages

1 Ответ

1 голос
/ 01 августа 2020

Это потому, что задания выполняются на отдельных агентах, поэтому ваш образ недоступен на этой машине. Пожалуйста, отметьте do c здесь .

Этап содержит одно или несколько заданий. Каждое задание выполняется агентом. Задание представляет собой границу выполнения набора шагов. Все шаги выполняются вместе на одном агенте. Например, вы можете построить две конфигурации - x86 и x64. В этом случае у вас есть один этап сборки и два задания.

Вам нужно кэшировать образ на агенте, который в настоящий момент невозможен на размещенном агенте .

Итак, чтобы ускорить это, у вас есть два варианта для рассмотрения:

  • создать шаг (в идеале как шаблон, повторно используемый в ваших заданиях / этапах), чтобы создать изображение docker с использованием уже кэшированного изображения в качестве основы для вашего изображения - теоретически это может ускорить процесс, но если создание вашего образа занимает много времени, это может привести к еще худшему результату - это просто нужно проверить для вашего сценария
  • используйте размещенный агент а затем вы сохраните свое изображение в кеше, избегая получения изображения каждый раз
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...