Ответ
В DevOps-практике Nexus Repository Manager (от Sonatype) — это артефактный репозиторий для хранения, управления и распространения бинарных сборок и зависимостей. В Linux-среде он развертывается как сервис, часто в Docker или как standalone Java-приложение.
Основные функции в DevOps-пайплайне:
- Проксирование внешних репозиториев: Кэширует артефакты из Maven Central, npm Registry, Docker Hub, PyPI и других, ускоряя сборки и обеспечивая независимость от внешних сбоев.
- Хостинг внутренних релизов: Централизованное хранилище для собственных Docker-образов, Java/JAR-библиотек, пакетов Helm, DEB/RPM-пакетов, собранных в CI/CD (например, Jenkins, GitLab CI).
- Управление жизненным циклом: Поддержка snapshot и release-версий, политики хранения (cleanup) для экономии дискового пространства.
- Безопасность и контроль доступа: Интеграция с LDAP/Active Directory, RBAC, сканирование компонентов на уязвимости (через IQ Server).
Пример развертывания и базового использования через Docker:
# Запуск контейнера Nexus 3
sudo docker run -d --name nexus -p 8081:8081 -p 8082:8082 -v nexus-data:/nexus-data sonatype/nexus3
# После запуска (через несколько минут) доступен по http://<server-ip>:8081
# Пароль администратора по умолчанию находится внутри контейнера:
sudo docker exec nexus cat /nexus-data/admin.password
Интеграция с CI/CD: В пайплайне Maven или Gradle указывается URL Nexus как <mirror> или repository. Для Docker используется приватный registry (docker push <nexus-host>:8082/my-image:latest).