Вобщем не понимаю я переживаний на счет Докера, ну ушел и ушел, это блин вообще некритикал, все уже привыкли)
Но задумался вот над чем. Вобщем есть такая компания Chainguard, которая готовит такие образа в которых всегда 0 уязвимостей*, ну кроме неизвестных (* — по версии компании). Вообще, круто то, что это прям максимальный Shift left без каких-либо вспомогательных инструментов. Так вот подписка там платная и только с ней можно качать образа определенной версии. В бесплатной подписке можно пулить только образа с версией latest. Разумеется, если вы серьезный энтерпрайз, а не хипстерский стартап, то такое использовать фе. Но, что если написать такую штуку, которая определяет версию образа. Причем это вполне реально.
Например, такое:
-
По названию образа определяем команду для вывода версии продукта (с помощью справочника, ии или захардкоженной логики)
-
Запускаем необходимую команду в контейнере из latest-образа
-
Грепаем оттуда версию
-
Ретегируем образ полученной версией
-
Пушим в свой прайват репозиторий
Вот к примеру вручную:
-
Берем образ Nginx
$ docker pull cgr.dev/chainguard/nginx
Using default tag: latest
latest: Pulling from chainguard/nginx
Digest: sha256:1a01e891696587501b097645d4feead0e0c512f7919481a10115d01bc1e94d27
Status: Image is up to date for cgr.dev/chainguard/nginx:latest
cgr.dev/chainguard/nginx:latest -
Запускаем необходимую команду для определения версии в контейнере
$ docker run cgr.dev/chainguard/nginx -v
nginx version: nginx/1.25.5 -
Парсим версию. Лень думать, спрашиваем у жпт)

Парсим версию:
$ echo "nginx version: nginx/1.25.5" | grep -oP '(?<=nginx/)[^\s]+'
1.25.5 -
Ретегируем образ
$ docker tag cgr.dev/chainguard/nginx:latest <private repo>/nginx:1.25.5 -
Пушим в прайват-репу
$ docker push <private repo>/nginx:1.25.5Кстати, интересно, кто еще об это думал или попробовал написать такое? Пообщался щас с Rus Dacent’ом . Толик об этой идее кстати рассказывал на DefCon в Нижнем Новгороде 😉
В общем попозже попробую навоять сервис:)
ссылка на оригинал статьи https://habr.com/ru/articles/818517/

Добавить комментарий