Настройка Docker
Эта страница относится к текущей реализации OSA Proxy. Архивная Java/Spring-реализация доступна в разделе Архивная Java/Spring-реализация.
Docker использует стандартные endpoints Registry API v2. Имя репозитория из конфигурации не добавляется в путь клиента.
auth-token-url — полный URL token endpoint. OSA Proxy не добавляет к нему /token. Поле необязательно: не задавайте его для registry, которому не требуется отдельный token service. При неверной настройке OSA Proxy выводит предупреждение в журнал.
Проверка манифестов образов
Параметр scan-container включает проверку манифестов контейнерных образов в CodeScoring перед отдачей клиенту. По умолчанию он включен (true). При scan-container: false запросы манифестов и слоев проксируются напрямую (passthrough) без проверки.
Использование OSA Proxy как Docker registry в CodeScoring
Функция доступна только в CodeScoring версии 2026.35.0 и выше.
Чтобы CodeScoring скачивал слои образов через тот же инстанс OSA Proxy:
- Добавьте OSA Proxy как реестр контейнерных образов в CodeScoring, указав внешний адрес прокси.
- Включите
codescoring-pull-through-proxy: trueв настройках нужного Docker-репозитория:
В этом режиме OSA Proxy передает адрес прокси и временный токен обхода в запросе на проверку. Когда CodeScoring выполняет обратный pull для анализа слоев, прокси распознает токен, привязанный к образу и репозиторию, и пропускает загрузку без повторного циклического сканирования.
Особенности режима:
- Требуется обязательное указание
codescoring.token. - Токен обхода действует 2 минуты.
- При наличии Redis токены обхода сохраняются в нем и доступны всем репликам OSA Proxy. Без Redis используется локальная память инстанса, поэтому для нескольких реплик требуется Redis либо sticky routing.
Для Docker Hub можно настроить OSA Proxy как registry mirror в /etc/docker/daemon.json:
После изменения перезапустите Docker daemon.
Если включено несколько Docker-репозиториев, используйте схему с поддоменами, где поддомен соответствует repository[*].name:
Это требуется из-за особенностей Docker Registry API v2: клиент всегда обращается к фиксированным путям /v2/... и /token, поэтому имя репозитория OSA Proxy нельзя добавить первым сегментом пути, как для npm, Maven или PyPI. Когда настроен один Docker-репозиторий, OSA Proxy может обслуживать его через основной host. Когда Docker-репозиториев несколько, сервис определяет нужную конфигурацию по host запроса.
Например, для конфигурации:
клиенты должны использовать разные hostnames:
Для такой схемы настройте DNS wildcard или отдельные DNS-записи для поддоменов, TLS-сертификат с поддержкой этих имен и reverse proxy/load balancer, который передает запросы на OSA Proxy с исходным Host.
OSA Proxy формирует URL авторизации с учетом адреса, по которому к нему обратился клиент. Docker attestation manifests возвращаются клиенту без проверки.
