
requirements.txt와 RUN pip install 사용 비교Dockerfile에서 Python 패키지를 설치할 때 requirements.txt를 사용하는 방법과 RUN pip install을 사용하는 방법에는 각각의 장단점이 있습니다. 아래에서 이를 비교하고 상황에 따른 추천 방법을 정리합니다.
requirements.txt를 사용해 패키지를 설치Dockerfile에서 pip install -r requirements.txt를 사용하는 방식입니다.
requirements.txt는 프로젝트의 의존성을 중앙에서 관리하기 때문에 의존성을 수정하거나 업데이트할 때 간단합니다.requirements.txt만 수정하면 됩니다.requirements.txt 파일이 없으면 설치할 수 없기 때문에 항상 해당 파일이 필요합니다.RUN pip install <패키지>를 직접 사용Dockerfile에서 특정 패키지를 직접 설치하는 방식입니다.
RUN 명령으로 바로 설치하는 것이 더 직관적일 수 있습니다.RUN pip install <패키지>RUN pip install 명령을 사용하면 설치 순서와 충돌 문제가 발생할 수 있습니다.requirements.txt를 사용해야 하는 경우requirements.txt 파일로 관리하는 것이 필수적입니다.requirements.txt 사용이 적합합니다.<패키지1>==<버전1>
<패키지2>==<버전2>
<패키지3>=<버전3>RUN pip install을 사용해야 하는 경우RUN으로 바로 명시하는 것도 괜찮습니다.RUN pip install rasa spacy대부분의 경우: requirements.txt 파일에 의존성을 정의하고, Dockerfile에서 이를 참조하여 설치하는 방식이 가장 권장됩니다.
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
혼합 사용 가능:
requirements.txt로 주요 의존성을 관리하면서, 환경에 따라 추가적으로 필요한 1~2개의 패키지를 Dockerfile에서 직접 설치할 수도 있습니다.RUN pip install <패키지>
requirements.txt는 일관성과 유지보수를 위해 권장되며, RUN pip install은 단순하고 임시적인 작업에 적합합니다.