Nexus 설치

Step1. Ubuntu 서버에 Nexus 설정하기

참고URL

Nexus3 필요 라이브러리 설치하기

1
2
3
4
5
6
7
8
9
# java 설치
$ sudo apt-get update
$ sudo apt install openjdk-8-jre-headless -y

# Nexus3 설치
$ cd /opt
$ sudo wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
$ sudo tar -zxvf latest-unix.tar.gz
$ sudo mv /opt/nexus-[version] /opt/nexus

권한 그룹 생성

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo adduser nexus
$ sudo visudo
-- nexus ALL=(ALL) NOPASSWD: ALL //입력

# 권한 부여
$ sudo chown -R nexus:nexus /opt/nexus
$ sudo chown -R nexus:nexus /opt/sonatype-work

# nexus user 설정
$ sudo nano /opt/nexus/bin/nexus.rc
-- run_as_user="nexus" //입력

1
nexus ALL=(ALL) NOPASSWD: ALL

visudovi /etc/sudoers ????

Step2. Docker-compose를 통한 Nexus 띄우기

docker-compose.yml 파일 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# docker-compose.yml
nexus:
image: 'sonatype/nexus'
container_name: nexus
user: root
ports:
- "8081:8081"
networks:
- devnet
volumes:
- "/opt/nexus/:/var/lib/nexus"

networks:
devnet:
driver: bridge

해당파일 작성 후 파일이 있는 곳에서

1
2
3
4
5
# 도커 빌드 및 백그라운드에서 해당 기술된 컨테이너 기동하는 명령어
$ docker-compose up -d

# 로그 실시간 확인
$ docker-compose logs -f

Nexus, 무엇인가?

Sonatype 에서 만든 저장소 관리자 프로젝트
다양한 Format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache 할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구
Maven 에서 사용할 수 있는 가장 널리 사용되는 무료 저장소

사설 리포지토리가 왜 필요할까?

  • 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 Proxy 역할
  • 특히 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는 등 여러 상황에서도 빠르게 받을 수 있음
  • 현재 Maven에 올라와 있지 않은 자료들은 효율적으로 관리
  • 개발팀에서 사용하는 공통 라이브러리들을 공유
  • 특정 솔루션을 사용하기 위한 3rd Party 라이브러리의 관리

Nexus 2.X → 3.X

  • Nexus 3는 아키텍처와 기능을 완전히 새로 작성하여 성능 및 사용성 개선을 하였고, 더 많은 Format을 지원
  • 아키텍처와 기능을 완전히 새로 작성하여 만들어졌기 때문에 2.X 버전과의 동등성과 하위호환성이 보장되지 않음
  • Maven, Yum 이외에 Docker, npm, Ruby Gems 등 지원 포맷 확장
  • 2.x 버전에서 3.x 버전으로 업그레이드 한다면 (Nexus Repository Manager 2.x to 3.x Feature Equivalency) 를 참고