Поддержка подстановочных знаков для артефактного кэша в реестре контейнеров Azure

Подстановочный знак использует звездочки (*) для сопоставления нескольких путей в реестре образов контейнера. В этой статье перечислены подстановочные знаки, поддерживаемые функцией кэша артефактов для реестра контейнеров Azure (ACR).

Примечание.

Отображение правил кэширования из target repository =>source repository.

Подстановочный символ уровня системного реестра

Подстановочный знак уровня реестра позволяет кэшировать все репозитории из вышестоящего реестра.

Правило кэша Картирование Пример
contoso.azurecr.io/* =>mcr.microsoft.com/* Сопоставление всех изображений в ACR с MCR. contoso.azurecr.io/myapp/image1 > mcr.microsoft.com/myapp/image1<br>contoso.azurecr.io/myapp/image2 > mcr.microsoft.com/myapp/image2

Подстановочный знак уровня репозитория

Подстановочный знак на уровне репозитория позволяет кэшировать все репозитории из вышестоящего реестра, соответствующие префиксу репозитория.

Правило кэша Картирование Пример
contoso.azurecr.io/dotnet/* =>mcr.microsoft.com/dotnet/* Сопоставление конкретных репозиториев в ACR с соответствующими репозиториями в MCR. contoso.azurecr.io/dotnet/sdk =>mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime =>mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* =>mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* =>docker.io/library/python/*
Сопоставление конкретных репозиториев в ACR с репозиториями из разных вышестоящих реестров. contoso.azurecr.io/library/dotnet/app1 =>mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 =>docker.io/library/python/app3

Ограничения для правил кэша на основе подстановочных знаков

Правила кэша подстановочных знаков используют звездочки (*) для сопоставления нескольких путей в реестре образов контейнера. Эти правила не могут перекрываться с другими правилами кэша, использующими подстановочные символы, путем нацеливания на один и тот же путь репозитория или на несколько путей, где один из них включает другой. Другими словами, если у вас есть правило кэширования с подстановочными символами для определенного пути реестра, вы не можете добавить другое правило с подстановочными символами, перекрывающее его.

Ниже приведены некоторые примеры перекрывающихся правил:

Пример 1:

Существующее правило кэша: contoso.azurecr.io/* => mcr.microsoft.com/*
Новое правило кэша: contoso.azurecr.io/library/* => docker.io/library/*

Добавление нового правила кэша блокируется, так как путь целевого репозитория contoso.azurecr.io/library/* перекрывается с существующим подстановочным правилом contoso.azurecr.io/*.

Пример 2:

Существующее правило кэша: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Новое правило кэша: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

Пример 3:

Существующее правило кэша: contoso.azurecr.io/* => mcr.microsoft.com/*
Новое правило кэша: contoso.azurecr.io/* => docker.io/library/*

Добавление нового правила кэша блокируется, так как два правила используют один и тот же целевой путь contoso.azurecr.io/*репозитория.

Добавление нового правила кэша блокируется, так как путь целевого репозитория contoso.azurecr.io/library/dotnet/* перекрывается с существующим подстановочным правилом contoso.azurecr.io/library/*.

Ограничения для правил статического и фиксированного кэша

Статические или фиксированные правила кэша являются более конкретными и не используют подстановочные знаки. Они могут совпадать с правилами кэша на основе подстановочных знаков. Если правило кэша указывает фиксированный путь к репозиторию, оно может пересекаться с правилом кэша, основанным на использовании подстановочных знаков. Однако нельзя создать несколько статических правил, указывающих на один и тот же путь репозитория.

Пример 1:

Существующее правило кэша: contoso.azurecr.io/* =>mcr.microsoft.com/*
Новое правило кэша: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Добавление нового правила кэша допускается, так как contoso.azurecr.io/library/dotnet это статический путь и может перекрываться с правилом contoso.azurecr.io/*кэша подстановочных знаков.

Пример 2:

Существующее правило кэша: contoso.azurecr.io => mcr.microsoft.com/*
Новое правило кэша: contoso.azurecr.io => docker.io/library/*

Добавление нового правила кэша блокируется, так как два правила используют один и тот же целевой путь contoso.azurecr.ioрепозитория.

Дальнейшие действия