django_Docker build시 오류 대처 (pywin32)

UICHEOL_HWANG·2023년 9월 13일

Docker

목록 보기
1/5

자 나만의 프로젝트를 만들고나서 도커에 이사를 가기전 들뜬 마음으로 도커 파일들을 만들어줬다

도커 파일을 먼저 세팅해주고


야밀 파일도 만들어주고!


이제 첫 이사를 가기 위한 이정표로 도커 build를 하려는데 ...

backend>docker-compose build
13.51 ERROR: Could not find a version that satisfies the requirement pywin32==306 (from versions: none)
13.52 ERROR: No matching distribution found for pywin32==306
------
failed to solve: process "/bin/sh -c pip install -r requirements.txt" did not complete successfully: exit code: 1

???!?!!?!?!!?

이게 뭐여ㅋㅋㅋㅋ

 => [web internal] load build context                                                      0.1s 
 => => transferring context: 13.13kB                                                       0.0s 
 => CACHED [web 2/5] WORKDIR /usr/src/app                                                  0.0s 
 => [web 3/5] COPY . /usr/src/app/                                                         0.5s 
 => [web 4/5] RUN pip install --upgrade pip                                                4.7s 
 => ERROR [web 5/5] RUN pip install -r requirements.txt                                   16.3s 
------

잘 가다가 계속 패키지 설치에서 문제가 생기길래 구글링과 GPT의 힘을 빌리니

pywin32는 Windows에서 사용되는 패키지로, 일반적으로 Windows에서만 필요한 패키지입니다. Linux 환경에서는 pywin32가 지원되지 않습니다. 따라서 Linux 환경에서는 이 패키지를 설치하지 않아야 합니다.

만약 Linux에서 개발 및 실행 중이라면 pywin32를 설치하지 않도록 requirements.txt 파일에서 해당 패키지를 제거하거나 주석 처리하세요. 이렇게 하면 Linux에서 Docker 이미지를 빌드하고 실행할 때 이러한 종속성을 고려하지 않아도 됩니다.

requirements.txt 파일을 열고 pywin32==225 라인을 주석 처리하거나 제거한 후 다시 Docker 이미지를 빌드하십시오.

결국 윈도우에서 쓰던 내 파이썬 패키지 때문이었단걸 알았다 ...
그래서 혹시 도커로 이사가기 전 필요없는 패키지를 걸러달라고 얘기하니


Django 프로젝트를 Docker 컨테이너로 실행할 때 필요한 패키지만 requirements.txt 파일에 포함시켜야 합니다. 그 외에는 제거하셔도 됩니다. 여기서 Docker 컨테이너를 실행하는 데 필요하지 않을 것으로 보이는 패키지 목록은 다음과 같습니다:

jupyter-core
jupyterlab-pygments
matplotlib-inline
mistune
prompt-toolkit
pywinpty
referencing
Send2Trash
six
sniffio
soupsieve
terminado
tinycss2
tornado
traitlets
typing_extensions
tzdata
uri-template
이 패키지들은 Django 애플리케이션을 실행하는 데 직접적으로 필요하지 않으므로 requirements.txt 파일에서 제거할 수 있습니다. 이렇게 하면 Docker 이미지가 더 가볍게 구성됩니다. 필요한 패키지만 포함되어 Docker 이미지 크기가 작아질 것입니다.

대략적으로 말해주시니 모두 주석처리하니

[+] Running 2/2
 ✔ Network backend_default  Created                                                        0.2s 
 ✔ Container backend-web-1  Created                                                        0.5s 
Attaching to backend-web-1

성공~ㅎㅎ

결론

pywin32는 윈도우 전용이고 리눅스 환경에서는 읽을 수 없는 패키지이니 모든 작업이 끝난 후 이사갈 때 requirements.txt 작업을 하시기 전에 꼭 한 번 확인 하시길 그럼 이만 ...

profile
개발 취미로 하는 세일즈맨

0개의 댓글