对于我在azure-pipeline中的测试,我想使用一个容器,然后推送到Docker Hub。
实际上,步骤如下。
问题是 从注册表中调出的图像包含了之前的代码,而不是我正在测试的代码。
我想做的是
首先,在Docker注册表中部署带有新代码的镜像。
然后,前面提到的步骤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图像,而不是在我用最新的代码构建图像之后。那么,我可以怎么做呢?
你可以尝试 尽快完成你的docker构建和推送任务。 在你的方案中。
首先docker构建你的镜像并修改代码,然后docker运行你的新构建镜像。
然后docker测试你的镜像,最后docker推送它。