У меня есть конвейер CI/CD с одной настройкой JenkinsBuild.jk, которая автоматически запускается всякий раз, когда запрос на вытягивание объединяется с основной веткой.
У меня есть куча команд, таких как «сборка докеров» и «подталкивание докеров» в JenkinsBuild, которые создают версии образов докеров, например:
x.36, x.37, x.38, x.39, x.40, x.41, x.42, x.43, x.44, x.45 (добавлен префикс x. для удаления непомеченных изображений).
Теперь проблема возникает, когда мне нужно развернуть несколько из этих dockerImages для производства, а не все из них. Пример — x.36 , x.40 и x.45 — это образы, развернутые для рабочей среды, а все остальные образы используются в непроизводственной среде для тестирования кода.
Когда я применяю приведенную ниже политику жизненного цикла ECR, она сохраняет 5 лучших образов, поэтому все те версии, которые не были развернуты в рабочей среде, также сохраняются, а те, которые были развернуты последними, удаляются. Пример: первые 5 образов, т. е. x.41, x.42, x.43, x.44, x.45, хранятся в ECR, а последние prod dockerImages, т. е. x.36, x.40, удаляются из-за приведенной ниже политики ( x. 45 не удаляется, так как оно было одним из 5 лучших изображений).
{
"rulePriority": 1,
"description": "Keep last 5 images",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["x."],
"countType": "imageCountMoreThan",
"countNumber": 5
},
"action": {
"type": "expire"
}
}
Может ли кто-нибудь помочь мне, как политика ECR может удалять только нерабочие dockerImages?
or
Как я могу переопределить dockerImages во время развертывания prod на стр. 36, стр. 40, стр. 45 с помощью JenkinsDeploy.jk?
Пожалуйста, предложите, если можете. Спасибо, что прочитали мой пост.