본문 바로가기

리눅스

[WIP] Docker Compose로 Sonatype Nexus Repository 3를 설치 및 실행하는 방법

728x90

Docker Compose로 Sonatype Nexus Repository 3를 설치 및 실행하는 방법

Sonatype Nexus Repository 3는 Maven, Docker, npm, PyPI, Helm 등 다양한 패키지 저장소를 통합 관리할 수 있는 대표적인 아티팩트 저장소입니다.

1. 사전 준비

Docker/Docker Compose 설치 확인

docker -v
docker compose version

2. Sonatype Nexus3 Docker 이미지 다운로드

docker pull sonatype/nexus3

3. Nexus3 디렉터리 생성

Nexus 데이터 영속성을 위해 별도 디렉터리를 생성합니다.

mkdir -p /data/nexus3/nexus-data
cd /data/nexus3

4. Docker Compose 파일 생성

vim docker-compose.yml
version: '3.7'
services:
   nexus3:
      image: sonatype/nexus3
      restart: unless-stopped
      container_name: nexus3
      # privileged: true
      user: root
      volumes:
         - ./nexus-data:/nexus-data
      healthcheck:
         test: ["CMD", "nc", "-zv", "localhost", "8000" ]
         interval: 5s
         timeout: 2s
         retries: 3
      ports:
         - 8081:8081
         - 5000:5000

5. Docker Compose 실행

docker-compose up -d
[+] Running 1/1
 ✔ Container nexus3 Started

이렇게 하면 Nexus3가 8081 포트에서 실행됩니다.

6. 컨테이너 상태 확인

docker-compose ps
$ docker-compose ps
NAME    COMMAND                 SERVICE  STATUS               PORTS
nexus3  "sh -c ${SONATYPE_DI…"  nexus3   running (unhealthy)  0.0.0.0:5000->5000/tcp, 0.0.0.0:8081->8081/tcp

7. 초기 관리자 비밀번호 확인

Nexus3는 최초 실행 시 임시 관리자 비밀번호를 생성합니다.

docker-compose exec nexus3 sh -c 'cat /nexus-data/admin.password'
$ docker-compose exec nexus3 sh -c 'cat /nexus-data/admin.password'
f1d7be03-d2c7-4113-bd59-9010383b142d
728x90

8. Nexus3 웹 접속

브라우저에서 아래 주소로 접속합니다.

http://localhost:8081

최초 로그인

  • Username : admin
  • Password : /nexus-data/admin.password 내용
최초 로그인 후 비밀번호 변경 화면이 나타납니다.

nexus3

9. 기본 설정 진행

로그인 후 아래 항목을 설정합니다.

 

관리 메뉴 진입

Administration → System

권장 설정

  • 관리자 비밀번호 변경
  • Blob Store 경로 확인
  • 익명 접근 허용 여부 설정
  • SMTP 메일 설정
  • 사용자 / Role 권한 관리
  • Cleanup Policy 설정
  • Proxy Repository 구성

10. Docker Registry 용도로 사용할 경우

5000 포트를 개방했다면 Nexus에서 Docker Hosted Repository 생성 후 사용 가능합니다.

Repository Name : docker-hosted
HTTP Port       : 5000

Docker 로그인

docker login 서버IP:5000

11. 운영 시 권장 사항

메모리 증설

  • Nexus는 Java 기반 서비스이므로 메모리 부족 시 매우 느려질 수 있습니다.
environment:
  - INSTALL4J_ADD_VM_PARAMS=-Xms2g -Xmx2g

데이터 백업

tar czvf nexus-backup.tar.gz nexus-data/

로그 확인

docker compose logs -f nexus3

 

728x90