Настройка Nexus для кэширования артефактов и Docker Registry

Внешние репозитории замедляют сборки, а Docker Hub ограничивает запросы — это тормозит разработку и увеличивает расходы. Мы настраиваем Nexus Repository Manager, который кэширует артефакты и создаёт приватный Docker Registry, ускоряя CI/CD. Наша команда реализует проект под ключ — от аудита до поддержки, обеспечивая стабильную работу и масштабирование вместе с вашим бизнесом.
Часто задаваемые вопросы

CI-пайплайн тратит 15 минут на скачивание Maven-зависимостей из внешних репозиториев. Docker Hub режет rate limits, а npm registry падает под нагрузкой. Знакомо? Nexus Repository Manager решает все три проблемы одним инструментом. Он кеширует артефакты после первого запроса, обеспечивает приватный Docker Registry и единую точку входа для всех пакетных менеджеров. Экономия на трафике — до $200 в месяц для средней команды, ускорение сборок — в 90 раз.

Свяжитесь с нами для аудита — оценим вашу инфраструктуру. Наши инженеры имеют 5+ лет опыта в администрировании Nexus в кластерах Kubernetes и на bare-metal.

Как Nexus ускоряет сборку?

Nexus кеширует зависимости после первого скачивания. При повторной сборке артефакты отдаются из локального хранилища. Задержка падает с 15 минут до 10 секунд. Это особенно заметно при частых перезапусках контейнеров в CI.

Типы репозиториев и что когда использовать

Nexus работает с тремя видами репозиториев:

Тип Назначение Пример URL
Proxy Зеркалирует внешний источник maven-central → https://repo1.maven.org/maven2/
Hosted Хранит ваши артефакты maven-releases, docker-internal
Group Объединяет proxy и hosted в один endpoint maven-public (включает releases, snapshots, central)

Типичная конфигурация для Maven:

maven-public (group)
├── maven-releases (hosted)
├── maven-snapshots (hosted)
└── maven-central (proxy → https://repo1.maven.org/maven2/)

В ~/.m2/settings.xml разработчик прописывает только http://nexus.company.com/repository/maven-public/.

Почему стоит выбрать Nexus вместо Artifactory?

Nexus Open Source — бесплатен и не требует лицензирования. Он проще в настройке: для базового сценария нужно в 2 раза меньше времени, чем с Artifactory. При этом функционала достаточно для большинства средних компаний. Поддерживает Maven, npm, Docker, PyPI и другие.

Сравнение лицензий: Artifactory Pro стоит от $12,000 в год за 5 пользователей, Nexus OSS — $0. Разница в производительности незначительна при одинаковых ресурсах.

Установка и минимальная конфигурация

Nexus OSS распространяется как tar.gz и как Docker-образ. Для production рекомендуем Docker с внешним volume под данные:

version: "3"
services:
  nexus:
    image: sonatype/nexus3:3.68.0
    volumes:
      - nexus-data:/nexus-data
    ports:
      - "8081:8081"
      - "8082:8082" # Docker registry port
    environment:
      - INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m
    restart: unless-stopped
volumes:
  nexus-data:

Параметры JVM критичны. Согласно документации Sonatype, рекомендуется выделять Nexus не менее 2/3 доступной RAM — при 8 ГБ на хосте ставим -Xmx4g. Недостаток памяти проявляется в OutOfMemoryError: Direct buffer memory при интенсивной работе с Docker registry.

Начальный пароль после первого запуска находится в /nexus-data/admin.password.

Настройка Docker Registry

Nexus может выступать как Docker registry — hosted для своих образов и proxy для Docker Hub (обходим rate limits):

docker-hub (proxy → https://registry-1.docker.io) → порт 8083
docker-internal (hosted) → порт 8082
docker-all (group) → порт 8084

Каждый Docker-репозиторий требует отдельного HTTP-порта — это ограничение протокола Docker Registry v2. В Nginx добавляем location для каждого порта или используем поддомены.

Авторизация в CI:

docker login nexus.company.com:8082 -u ci-user -p $NEXUS_PASSWORD docker push nexus.company.com:8082/myapp:1.0.0 

Безопасность и роли

По умолчанию Nexus создаёт роли nx-admin, nx-anonymous, nx-deploy. Для production минимально нужно:

  • Отключить anonymous access (Administration → Security → Anonymous Access).
  • Создать отдельные роли для CI (nx-deploy-role с правами на конкретные репозитории) и разработчиков (read-only на proxy-репозитории).
  • Настроить LDAP-интеграцию для корпоративной аутентификации.

Права назначаются на уровне репозитория через Repository Content Selectors — можно ограничить CI-пользователя только определёнными группами пакетов.

Сравнение Nexus OSS и Pro

Функция OSS Pro
Цена Бесплатно От $12,000/год
Хранилище артефактов Maven, npm, Docker, PyPI, NuGet Всё, что в OSS + RAW, APT, YUM
Роли и безопасность LDAP, RBasic LDAP, SAML, SSO, Crowd
Cleanup Policies Вручную через UI Автоматические политики + расписание
Storage Quotas Нет Есть (лимиты на проект)

Для большинства компаний OSS-версии достаточно. Pro оправдан при строгих compliance-требованиях или необходимости интеграции с SAML.

Очистка артефактов и Cleanup Policies

Без политик очистки Nexus неограниченно растёт. Создаём Cleanup Policy:

  • maven-snapshots-cleanup: удалять SNAPSHOT-артефакты старше 30 дней, к которым не обращались более 7 дней.
  • docker-cleanup: удалять Docker-образы без тегов (untagged) старше 7 дней.

Политики применяются к репозиториям в Administration → Repository → Cleanup Policies. Задача Cleanup service запускается по расписанию (по умолчанию — раз в сутки).

После cleanup обязательно запускать Compact Blob Store — иначе диск не освободится, данные просто помечаются как удалённые.

План настройки Nexus

  1. Выбрать версию Nexus (OSS или Pro).
  2. Развернуть контейнер с помощью Docker.
  3. Настроить транспорт: HTTP порты, TLS.
  4. Создать proxy-репозиторий для целевого пакетного реестра.
  5. Создать hosted и group репозитории.
  6. Настроить пользователей и роли.
  7. Применить Cleanup Policies.

Что входит в настройку под ключ

  • Установка и базовая конфигурация Nexus (Docker, volume, JVM).
  • Настройка proxy-репозиториев для Maven, npm, Docker, PyPI.
  • Настройка hosted-репозиториев для ваших артефактов.
  • Настройка группы для единого endpoint.
  • Docker Registry (hosted, proxy, group) с отдельными портами.
  • Интеграция LDAP для корпоративной аутентификации.
  • Создание ролей и политик безопасности.
  • Cleanup policies и автоматическая очистка.
  • Документация и обучение команды (1–2 часа).

Мы гарантируем стабильную работу и сопровождение после внедрения. Закажите настройку Nexus — получите консультацию инженера.

Пример `.m2/settings.xml` для Maven
<settings>
  <mirrors>
    <mirror>
      <id>nexus-maven-public</id>
      <mirrorOf>*</mirrorOf>
      <url>http://nexus.company.com/repository/maven-public/</url>
    </mirror>
  </mirrors>
</settings>

Сроки

Задача Срок
Установка + базовая конфигурация 4-8 часов
Настройка Maven/npm proxy и hosted 4-8 часов
Docker registry с Nginx 4-8 часов
LDAP интеграция + роли полдня
Cleanup policies + мониторинг полдня

Полный setup под production — 1-3 дня. Стоимость рассчитывается после аудита инфраструктуры.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141