【发布时间】:2021-11-23 19:36:47
【问题描述】:
我必须拉出一堆 docker 镜像,在它们上面安装一些根 CA 证书并将它们推送到私有仓库。
我想出的逻辑是:
- 创建模板 docker 文件 (Dockerfile.Template)
- 在管道上,声明所有要拉取的基础镜像
- 在 dockerfile 上一一运行,替换镜像名称
- 一一推送
我想出的模板dockerfile是:
FROM mcr.microsoft.com/dotnet/#{baseImage}# AS base
COPY RootCA-1.crt /usr/local/share/ca-certificates/
COPY RootCA-SubCA-1.crt /usr/local/share/ca-certificates/
RUN update-ca-certificates
天蓝色的管道是:
trigger:
- master
parameters:
- name: 'images'
type: object
default:
- sdk:6.0
- sdk:5.0
- sdk:3.1
- sdk:2.1
pool:
vmImage: ubuntu-latest
steps:
- ${{ each baseImage in parameters.images }}:
- bash: |
echo "current image is $(BASEIMAGE)"
- task: CopyFiles@2
inputs:
Contents: 'Dockerfile.Template'
TargetFolder: 'Dockerfile'
- task: replacetokens@4
inputs:
targetFiles: 'Dockerfile'
encoding: 'auto'
tokenPattern: 'default'
writeBOM: true
actionOnMissing: 'warn'
keepToken: false
actionOnNoFiles: 'continue'
enableTransforms: false
useLegacyPattern: false
enableTelemetry: true
- task: Docker@2
inputs:
containerRegistry: 'MyPrivateRegistry'
repository: 'dotnet/$(baseImage)'
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'
我当前的问题是替换令牌活动没有替换 docker 活动的 #{baseImage}#。
谁能帮忙?
【问题讨论】:
标签: docker azure-devops azure-pipelines