Musím vytáhnout spoustu docker obrazů, nainstalovat nějaký root CA cert na ně a tlačit je do privátní repo.
Logiku jsem přišel je:
- Vytvořit šablonu docker file (Dockerfile.Šablona)
- Na potrubí, prohlašuji, že všechny základní obrazy, které mají být vytáhl
- Spusťte jeden po druhém na dockerfile nahrazuje název obrázku
- Tlačit jeden po druhém
Šablony dockerfile jsem přišel je:
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
Azure potrubí je:
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'
Můj aktuální problém je, že nahradit token činnost není výměna #{baseImage}#
pro docker činnosti.
Může někdo pomoci?