КОНТЕКСТ
Мне нужно создать несколько образов докеров, для которых требуется определенный порядок.Чтобы выполнить такой порядок, я создал 2 этапа: первый, который отвечает за построение всех базовых образов, и второй, для которого нужны эти базовые образы для построения определенных изображений.
stages:
- stage: base
displayName: Base Images
jobs:
- job: Docker
pool:
vmImage: 'ubuntu-16.04'
timeoutInMinutes: 120
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.6'
architecture: 'x64'
- script: python build.py
env:
DOCKER_PASSWORD: $(DOCKER_PASSWORD)
strategy:
matrix:
Ubuntu GCC 4.9 x86_64:
GCC_VERSIONS: "4.9"
Ubuntu GCC 4.9 x86:
GCC_VERSIONS: "4.9"
DOCKER_ARCHS: "x86"
Ubuntu GCC 5 x86_64:
GCC_VERSIONS: "5"
Ubuntu GCC 5 x86:
GCC_VERSIONS: "5"
DOCKER_ARCHS: "x86"
Ubuntu GCC 5.2 x86_64:
GCC_VERSIONS: "5.2"
Ubuntu GCC 5.3 x86_64:
GCC_VERSIONS: "5.3"
Ubuntu GCC 6 x86_64:
GCC_VERSIONS: "6"
Ubuntu GCC 6 x86:
GCC_VERSIONS: "6"
DOCKER_ARCHS: "x86"
- stage: specilized
displayName: Specilized Images
jobs:
- job: Docker
pool:
vmImage: 'ubuntu-16.04'
timeoutInMinutes: 120
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.6'
architecture: 'x64'
- script: python build.py
env:
DOCKER_PASSWORD: $(DOCKER_PASSWORD)
strategy:
matrix:
Jenkins Slave GCC 4.9 x86_64:
GCC_VERSIONS: "4.9"
DOCKER_ARCHS: "x86_64"
DOCKER_DISTRO: "jnlp-slave"
Jenkins Slave GCC 4.9 x86:
GCC_VERSIONS: "4.9"
DOCKER_ARCHS: "x86"
DOCKER_DISTRO: "jnlp-slave"
Jenkins Slave GCC 5 x86_64:
GCC_VERSIONS: "5"
DOCKER_ARCHS: "x86_64"
DOCKER_DISTRO: "jnlp-slave"
Jenkins Slave GCC 5 x86:
GCC_VERSIONS: "5"
DOCKER_ARCHS: "x86"
DOCKER_DISTRO: "jnlp-slave"
Jenkins Slave GCC 6 x86_64:
GCC_VERSIONS: "6"
DOCKER_ARCHS: "x86_64"
DOCKER_DISTRO: "jnlp-slave"
Jenkins Slave GCC 6 x86:
GCC_VERSIONS: "6"
DOCKER_ARCHS: "x86"
DOCKER_DISTRO: "jnlp-slave"
Скриптpython build.py вызывает клиент Docker для создания образа Docker.Первый этап предоставляет все базовые изображения, которые должны использоваться на втором этапе.Кроме того, все эти изображения должны быть загружены, но только в мастер-ветке (условие проверено build.py).
ПРОБЛЕМА
На втором этапе не используетсяДля изображений, созданных на первом этапе, загружается последняя версия, доступная на Hub Docker.
ВОПРОС
Как можно использовать изображения, созданные на первом этапе, вместо загрузки?