nexus3 로 내부 레파지토리 구성하기(python,pypi)

개요

nexus라는 레파지토리 서버가있는데, 이를 이용하면 무료로 조직내에 레파지토리를 구성할 수 있다.

아래 링크에서 다운로드 할 수도 있지만…

https://www.sonatype.com/download-oss-sonatype

 

대세에 맞게, 또, 편하게 docker로 설치하기로 한다.

docker 이미지는 https://hub.docker.com/r/sonatype/nexus3 에서 확인할 수 있다.

 

또한, 인터넷에 관련 글들이 많으므로, 대부분 그 내용들을 참고로 할 것이고, 내게 필요한 일부 설정에 대해서만 적도록 하겠다.

https://kingbbode.tistory.com/37

https://velog.io/@king/private-docker-registry

https://www.lesstif.com/sonatype-nexus/nexus-3-1-33489418.html

 

설치 및 기동

d:\app\nexus3 밑에 docker-compose.yml 파일을 만든다.

d:\app\nexus3\nexus-data 아래 공유 볼륨을 만들어 놓았다.

처음으로 실행하면 이것저것 초기화 과정을 거친 뒤 서버가 기동된다.

웹브라우저를 통해 http://localhost:8081/ 로 접속하면 첫 페이지가 기동된다.

 

nexus3 repository 설정

로그인을 하려고 하면, id/pw를 물어보는데 팝업창의 설명에 보면  /nexus-data/admin.password 에 가면 패스워드가 있다고 한다. 해당파일에서 문자열을 복사하여 로긴한뒤 패스워드를 설정한다.

상단의 톱니바퀴 모양의 아이콘을 클릭하여 관리 화면에 들어가면, 좌측에 메뉴가있는데, 그중 repositories에 들어간다.

설치할때 기본적으로 maven 등등 기본적인 많은 패키지들이 설치되어 있다. 안쓸꺼니까 다 지운다.

그리고  create repository 를 클릭하여 새로운 레파지토리를 등록한다.  pypi(hosted) (파이썬 패키지를 직접 업로드하여 서비스하겠다.)를 클릭한다. 이름은 적절하게 ‘pypi-hosted’라고 적어주고,  Deployment Policy 에 ‘Allow redeploy’를 선택해준다. 중복으로 업로드하면 에러가 아니라 업데이트를 해주겠다는 뜻이다. 나머지는 기본으로 두고 ‘Create Repository’를 클릭해주면 끝이다.

 

pip 다운로드

패키지는 pip에 접속할 수 있는 별도의 서버에서 진행하든지 해야한다. https://pypi.org/simple/ 에 접속해서 패키지를 다운로드 할 수 있어야한다.

다운로드하고 싶은 패키지명을 requirements.txt 파일로 만들자. https://hugovk.github.io/top-pypi-packages/ 에서 1000개의 목록을 가지고 requirements.txt 파일을 만들었다.

다음 명령으로 패키지를 다운로드 한다.

 

요런식으로 다운로드 되어 있을 것이다.

 

패키지 업로드(nexus3 repository)

twine 패키지를 설치한다.  pip install twine

pip 설정해야 하는데, ~/.pypirc 파일설정을 하라고 하는데, windows에서는 pypirc 파일 설정이 적용이 잘 안되는 것 같다.(확실히 테스트한건 아니고 대충 해봤을때) 그냥 수동으로 해주자.

 

요렇게 하고나서, 다음과 같이 실행해주면 업로드가 된다.(중간에 ctrl+c로 중단함)

 

패키지 다운로드 해보기

커맨드라인에서 index-url을 입력해서 해도 되지만, 계속 쓸꺼니까 설정파일에 저장하자.

~/pip/pip.ini 파일에 아래와 같이 저장하고,

 

다음과 같이 실행하면, 로컬 repository에서 서비스가 가능하다.

 

 

python 각종 팁

python도 문법이 난잡하고 예쁘지 않아서 안배우고 싶었지만, 이만큼 강력한 스크립트 언어도 없다 생각된다. ruby가 예뻐서 좋은데, 범용성이 떨어지고 라이브러리도 약해서… python주변을 얼쩡거리게 된다.

파이썬 실행파일 만들기

파이썬3 실행파일 만들기

http://www.pyinstaller.org/

 

pip로 설치시 SSL 사용 안하기

pip로 패키지 다운로드 하기

 

Anaconda에서 SSL 사용 안하기

 

windows service 만들기

Python으로 Windows Service 제작해보기