Hello 👋

🧑🏻‍💻 A Developers who create code that changes the world

Infrastructure/Linux

[Linux] 인터넷이 없는 서버에 Python + Poetry 프로젝트를 배포

Potato_H 2025. 4. 16. 23:00

 

원래의 Python + Poetry 프로젝트를 배포 방식

 

인터넷이 연결된 서버에 소스 코드를 배포한 뒤, `poetry install` 명령 하나로 필요한 Python 패키지들을 자동으로 설치

 

이 과정에서 Poetry는 `pypi.org`에서 패키지를 받아오고, `.cache/virtualenvs` 아래에 가상환경이 구성됨

 

하지만 서버를 현장에 설치해야하고 현장은 보안 때문에 인터넷을 연결할 수 없음

 

인터넷이 없는 서버에서 Python + Poetry 프로젝트 배포

 

가상환경 이 같은 빌드용 리눅스 PC 한 대를 준비하여 빌드를 해서 빌드한 파일을 가져가 서버에 배포

 

빌드한 가상환경 과 소스코드를 서버에 배포해야하는데

가상환경은 /.cache/virtualenvs 경로에, 소스코드는 또 다른 경로에 있어서경로가 복잡하고 가상환경마다 이름이 달라져 찾고 배포하기가 힘듦

 

또한 소스코드와 환경을 배포했다고 해도 Poetry가 해당 환경 디렉토리를 자동으로 인식하지 못하며 매번 경로를 맞춰줘야 해서 매우 불편함

 

Poetry 가상환경을 프로젝트 폴더 내 `.venv` 디렉토리에 생성되도록 설정
poetry config virtualenvs.in-project true    # poetry 가상환경 경로를 프로젝트 안의 .venv로 설정
poetry install --no-root  # 가상환경 구성
tar -czvf 프로젝트명.tar.gz 프로젝트명/

 

위와 같이 한다면, 빌드 서버에서 poetry install을 하고

별도 경로 설정 없이 .venv를 포함한 같은 디렉토리만 통째로 옮기면 인터넷이 없는 서버에 배포를 편하게 할 수 있음