Eu tenho que puxar um monte de janela de encaixe imagens, instalar alguns certificados de autoridade de CERTIFICAÇÃO raiz no-los e empurrá-los para uma particular operação de recompra.
A lógica que inventei é:
- Criar um modelo de encaixe de arquivo (Dockerfile.Modelo)
- Em um pipeline, declarar todas as imagens de base a ser puxado
- Executar um por um no dockerfile substituir o nome da imagem
- Empurrar um por um
O modelo dockerfile eu cheguei é:
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
O azure pipeline é:
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'
O meu problema atual é que o substitua token de atividade não é substituir o #{baseImage}#
para a janela de encaixe atividade.
Alguém pode me ajudar?