![](/img/trans.png)
[英]Using Firebase Hosting, how can I restrict PURGE request to specific IPs
[英]ACR purge - How can i set regular expression to skip specific image which starts with v from purging
我正在管理一個 Azure 容器注冊表。 我已經安排了一個 ACR 清除任務,它會刪除所有超過 7 天的圖像標簽,並排除以v開頭的版本化圖像,這樣我們就可以跳過某些圖像進行清理。
例如:如果圖像的名稱類似於
123abc
v1.2
v1.3
xit5424
v1.4
34xyurc
v2.1
所以它應該刪除不以v開頭的圖像並且應該刪除不以v開頭的圖像。 例如,它應該刪除下面的圖像-
123abc
xit5424
34xyurc
我的腳本是這樣的。
PURGE_CMD="acr purge --filter 'Repo1:.' --filter 'ubuntu:.' --ago 7d --untagged --keep 5"
az acr run --cmd "$PURGE_CMD" --registry Myregistry /dev/null
謝謝阿希什
請檢查以下是否給出了解決方法的想法:
在這里,我嘗試使用刪除命令。
grep -v >>反轉匹配意義,為select非匹配行。
Grep -o >> 僅顯示與 PATTERN 匹配的匹配行的一部分。 grep - 參考
1)嘗試獲取與模式“v”不匹配的標簽
$tagsArray = az acr repository show-tags --name myacr --repository myrepo --orderby time_desc \
--output tsv | grep -v "v"
如果可能,請使用下面的清除命令檢查(未測試)
PURGE_CMD="acr purge --filter 'Repo1:.' --filter 'ubuntu:.' --ago 7d --filter '$tagsArray' --untagged --keep 5"
az acr run --cmd "$PURGE_CMD" --registry Myregistry /dev/null
(或者)
使用刪除命令檢查
前任:
$repositoryList = (az acr repository list --name $registryName --output json | ConvertFrom-Json)
foreach ($repo in $repositoryList)
{
$tagsArray = az acr repository show-tags --name myacr --repository myrepo --orderby time_desc \
--output tsv | grep -v "v"
foreach($tag in $tagsArray)
{
az acr repository delete --name $registryName --image $repo":"$tag --yes
}
}
或者我們可以通過查詢獲取所有不應刪除的標簽,並且可以使用 if else 語句標簽。
foreach ($repo in $repositoryList)
{
$AllTags = (az acr repository show-tags --name $registryName --repository $repo --orderby time_asc --output json | ConvertFrom-Json ) | Select-Object -SkipLast $skipLastTags
$doNotDeleteTags=$( az acr repository show-tags --name $registryName --query "[?contains(name, 'tagname')]" --output tsv)
#or $doNotDeleteTags = az acr repository show-tags --name $registryName --repository $repo --orderby time_asc --output json | ConvertFrom-Json ) -- query "[?starts_with(name,'prefix')].name"
foreach($tag in $AllTags)
{
if ($donotdeletetags -contains $tag)
{
Write-Output ("This tag is not deleted $tag")
}
else
{
az acr repository delete --name $registryName --image $repo":"$tag --yes
}
}
}
參考:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.