DEV Community

Cover image for Configura un repositorio Nexus con Docker y AWS EC2 en minutos
Brian
Brian

Posted on

Configura un repositorio Nexus con Docker y AWS EC2 en minutos

¿Quieres un repositorio central para manejar dependencias y artefactos en tus proyectos? ¡Sonatype Nexus es la solución! En este tutorial, aprenderás a instalar y configurar un Nexus Repository usando Docker en una instancia de AWS EC2.


Requisitos previos

Antes de comenzar, asegúrate de tener lo siguiente:


Paso 1: Crear un volumen persistente

Para evitar perder datos si el contenedor se detiene, primero crearemos un volumen en Docker:

docker volume create --name nexus-data
Enter fullscreen mode Exit fullscreen mode

Después de crear el volumen, puedes listar los volúmenes disponibles para asegurarte de que se haya creado correctamente:

docker volume ls
Enter fullscreen mode Exit fullscreen mode

Paso 2: Ejecutar el contenedor de Nexus

Usaremos la imagen oficial de Nexus para lanzar el servicio:

docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3
Enter fullscreen mode Exit fullscreen mode
  • Verifica que la imagen de Nexus se haya descargado correctamente:
docker images | grep nexus3
Enter fullscreen mode Exit fullscreen mode
  • Si el contenedor no aparece en ejecución al usar el comando docker ps, ejecútalo manualmente:
docker start nexus
Enter fullscreen mode Exit fullscreen mode

Por defecto, Nexus Repository Manager estará disponible en el puerto 8081.


Paso 3: Esperar la inicialización

Dale uno o dos minutos para que el contenedor se inicie completamente.

  • Prueba rápida: Abre tu navegador y visita http://<IP_de_tu_EC2>:8081. Deberías ver la interfaz de Nexus Repository.

Primera vista inicial de Nexus Repository Manager

  • Prueba alternativa con cURL:
curl http://<IP_de_tu_EC2>:8081
Enter fullscreen mode Exit fullscreen mode

Paso 4: Obtener la contraseña del administrador

Nexus genera una contraseña de administrador única la primera vez que se inicia. Para obtenerla:

Usa el siguiente comando para leer el archivo admin.password dentro del contenedor:

docker container exec nexus cat /nexus-data/admin.password
Enter fullscreen mode Exit fullscreen mode

El resultado será algo como:

90ae9815-05c3-43f1-9ad0-cb83a1d6780e
Enter fullscreen mode Exit fullscreen mode

Ejemplo contraseña de administrador inicial


Paso 5: Inicia sesión en el panel de administración

  1. Ve a http://<IP_de_tu_EC2>:8081
  2. Inicia sesión con:
    • Usuario: admin
    • Contraseña: (la que obtuviste en el paso anterior)

Pantalla inicial de inicio de sesión


Paso 6: Configurar Nexus según tus necesidades

Desde el panel de administración, puedes:

  • Crear repositorios para Maven, NPM, Docker, y más.
  • Configurar permisos y usuarios.
  • Integrar Nexus con tus pipelines de CI/CD.

🔑 Tips importantes para la configuración inicial

1. Cambio obligatorio de contraseña

Al iniciar sesión por primera vez como administrador, Nexus te solicitará que cambies la contraseña inicial. Asegúrate de que la nueva contraseña cumpla con los siguientes requisitos:

  • Al menos una letra mayúscula y una minúscula.
  • Al menos un número.
  • Al menos un símbolo especial (.!@#$%^&*()).
  • Longitud mínima de 8 caracteres.

2. Acceso anónimo

Durante la configuración inicial, Nexus te dará la opción de habilitar o deshabilitar el acceso anónimo:

  • Habilitar acceso anónimo: Los usuarios podrán buscar, navegar y descargar componentes de los repositorios sin necesidad de credenciales. Esto puede ser útil para proyectos públicos, pero debes evaluar los riesgos para tu organización.
  • Deshabilitar acceso anónimo: Requiere credenciales para todos los usuarios y herramientas de compilación, lo que es más seguro pero puede ser menos conveniente.

Recomendación: Si estás configurando Nexus para un entorno corporativo, considera deshabilitar el acceso anónimo para mantener un control más estricto sobre quién puede acceder a tus repositorios.


¿Listo para potenciar tus proyectos? 🚀

Ahora tienes un Nexus Repository completamente funcional corriendo en tu instancia EC2.

¿Te quedaron dudas? ¿O quizás ya tienes experiencia usando Nexus? ¡Comparte tus preguntas o experiencias en los comentarios! 👇🏻

Top comments (0)