| # 1. ๋ฅ๋ฌ๋/๋ฐ์ดํฐ ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๋๋ฅผ ์ํด ๋ฌด๊ฑฐ์ด alpine ๋์ slim ์ด๋ฏธ์ง ์ฌ์ฉ | |
| FROM python:3.11-slim | |
| # ์์คํ ์์กด์ฑ ๋ฐ ๋น๋ ๋๊ตฌ ์ค์น (์ผ๋ถ ํจํค์ง ์ปดํ์ผ์ฉ, ์ฉ๋ ์ค์ด๊ธฐ ์ํด ์ค์น ํ ์ ๋ฆฌ) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. ์์ ๋๋ ํ ๋ฆฌ ์ค์ | |
| WORKDIR /workspace | |
| # 3. pyproject.toml์ ์ด์ฉํด ์ข ์์ฑ ์ค์น๋ฅผ ์ํด pip ๊ธฐ๋ฐ์ผ๋ก ์ค์นํ๊ฑฐ๋ | |
| # ์ฌ๊ธฐ์๋ ์ง๊ด์ ์ผ๋ก pip๊ฐ pyproject.toml์ dependencies๋ฅผ ์ธ์ํ๋๋ก ์ค์ | |
| COPY pyproject.toml ./ | |
| # 4. ์ค์: PyTorch์ CPU ๋ฒ์ ์ ๋ช ์ํ์ฌ ๋ค์ด๋ก๋ ์ฉ๋์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ค์ ๋๋ค. | |
| # (๋ง์ฝ GPU(CUDA) ํ๊ฒฝ์ด ํ์๋ผ๋ฉด ์ด ๋ผ์ธ์ ์ญ์ ํ๊ณ ๊ธฐ๋ณธ ์ค์นํ๊ฒ ๋์ธ์) | |
| RUN pip install --no-cache-dir torch==2.10.0 --index-url https://download.pytorch.org/whl/cpu | |
| # 5. ๋๋จธ์ง ํจํค์ง ์ ์ฒด ์ค์น (pyproject.toml์ ์์กด์ฑ ์๋ ํ์ฑ ์ค์น) | |
| # pip ์ต์ ๋ฒ์ ์ pyproject.toml์ [project.dependencies]๋ฅผ ๋ฐ๋ก ์ธ์งํฉ๋๋ค. | |
| RUN pip install --no-cache-dir . | |
| # 6. ์์ค ์ฝ๋ ๋ณต์ฌ (์ ์ฒด ์์ค์ฝ๋๋ฅผ ์ปจํ ์ด๋ ์์ผ๋ก ๋ณต์ฌ) | |
| COPY . . | |
| # 7. ํฌํธ ๊ฐ๋ฐฉ | |
| EXPOSE 7860 | |
| # 8. Uvicorn ์คํ (์ง์ ์ ์ฃผ์: src.api.main:app) | |
| CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "7860"] | |