데이터 엔지니어 기술 블로그

private PyPI 구축하기(S3 backend) 본문

데이터 엔지니어링

private PyPI 구축하기(S3 backend)

jun_yeong_park 2021. 10. 11. 21:20
반응형

개요

파이써 패키지를 만들어서 사용해야하는데, public pypi 에 올릴 수 없는 경우 private PyPI 서버를 만들어야한다. 

서버를 띄워둘 때 새로운 EBS를 연결하지 않은 EC2나 EFS를 연결하지 않은 ECS 등의 상태가 유지되지 않을 수 있는 환경에서 띄우기엔  애매할 때 S3를 백엔드로 사용할 수 있다.

 

 

내용

S3를 백엔드로 사용하려면 pypicloud라는 라이브러리를 사용하면 된다. S3외에도 GCS, Blob Storage를 사용할 수 있다.

 

 

공식 페이지

https://pypi.org/project/pypicloud/

 

Getting Started

https://pypicloud.readthedocs.io/en/latest/topics/getting_started.html#uploading-packages

 

 

변경한 설정파일 값 예시

pypi.auth = config 

pypi.storage = s3
storage.bucket = '<user_bucket_name>'
storage.region_name = 'ap-northeast-2'
storage.prefix = 'pypi/packages/'

user.admin = <admin_password_hash_value>
auth.admins = admin

# 랜덤해쉬 4자리 비활성화
storage.prepend_hash = false

 

업로드 방법 예시

 

아래의 경로의 파일에 배포할 곳 정보를 설정해준다.

$HOME/.pypirc
[distutils]
index-servers = pypicloud

[pypicloud]
repository: http://localhost:6543/simple/
username: <<username>>
password: <<password>>

 

파이썬 패키지를 만든 후 업로드한다.

python3 setup.py sdist upload -r pypicloud

 

업로드 결과는 S3에서 확인할 수 있다.

 

설치 방법 예시

HOST=<<host>>
python3 -m pip install --trusted-host ${HOST} -i http://${HOST}:8080/simple <<package_name>> --upgrade

 

 

 

반응형
Comments