在为 azure 管道使用之前,将 Docker 映像推送到注册表。

问题描述 投票:1回答:1

对于我在azure-pipeline中的测试,我想使用一个容器,然后推送到Docker Hub。

实际上,步骤如下。

  1. 从注册表中提取镜像
  2. 做测试
  3. 在注册表中推送带有新提交代码的新图像。

问题是 从注册表中调出的图像包含了之前的代码,而不是我正在测试的代码。

我想做的是

  1. 首先,在Docker注册表中部署带有新代码的镜像。

  2. 然后,前面提到的步骤1到3,这样我拉的图片就是最新的。

这是我的实际代码。

trigger:
- master

resources:
  containers:
  - container: moviestr_backend
    image: nolwenbrosson/cicd:moviestr_backend-$(SourceBranchName)
    ports:
    - 5000:5000
  - container: backend_mongo
    image: mongo
    ports:
    - 27017:27017

pool:
  vmImage: 'ubuntu-latest'
strategy:
  matrix:
    Python37:
      python.version: '3.7'

services:
  moviestr_backend: moviestr_backend
  backend_mongo: backend_mongo
steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '$(python.version)'
  displayName: 'Use Python $(python.version)'

- script: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
    pip install -r requirements.dev.txt
    pip install pytest-azurepipelines
  displayName: 'Install dependencies'
- script: |
    python -m pytest
  displayName: 'Make Unit tests'
- task: Docker@2
  displayName: Login to Docker Hub
  inputs:
    command: login
    containerRegistry: cicd
- task: Docker@2
  displayName: Build and Push
  inputs:
    command: buildAndPush
    repository: nolwenbrosson/cicd
    tags: |
      moviestr_backend-master
- task: Docker@2
  displayName: Logout of ACR
  inputs:
    command: logout
    containerRegistry: cicd

问题是 资源 是整个管道中唯一的,它将在一开始就Pull图像,而不是在我用最新的代码构建图像之后。那么,我可以怎么做呢?

python azure-devops docker-registry
1个回答
0
投票

你可以尝试 尽快完成你的docker构建和推送任务。 在你的方案中。

首先docker构建你的镜像并修改代码,然后docker运行你的新构建镜像。

然后docker测试你的镜像,最后docker推送它。

© www.soinside.com 2019 - 2024. All rights reserved.