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


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

야밀 파일도 만들어주고!
이제 첫 이사를 가기 위한 이정표로 도커 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 작업을 하시기 전에 꼭 한 번 확인 하시길 그럼 이만 ...