conversify-model / Dockerfile
koh1018's picture
๊ถŒํ•œ ํ™•๋ณด2
6facfb7
# 1. ์šฐ๋ถ„ํˆฌ 24.04 ๊ธฐ๋ฐ˜ ์ด๋ฏธ์ง€ ์‚ฌ์šฉ (GLIBC 2.39 ํฌํ•จ, Python 3.12 ๋‚ด์žฅ)
FROM ubuntu:24.04
# 2. ํ•„์š”ํ•œ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์„ค์น˜ (๋นŒ๋“œ ๋„๊ตฌ, ๊ธฐํƒ€ ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ํŒŒ์ด์ฌ์€ ์ด๋ฏธ ๋‚ด์žฅ๋จ)
RUN apt-get update && apt-get upgrade -y && \
apt-get install -y \
software-properties-common \
build-essential \
gcc g++ cmake \
python3-venv python3-dev python3-pip \
curl git
# 3. ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ pip, setuptools, wheel ์—…๊ทธ๋ ˆ์ด๋“œ
RUN python3 -m venv /opt/venv && \
/opt/venv/bin/pip install --upgrade pip setuptools wheel
# 4. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”)
ENV PATH="/opt/venv/bin:${PATH}"
ENV HF_HOME=/app/huggingface_cache
# 5. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ์ž‘์—… ํด๋”๋ฅผ ๋งŒ๋“ฆ
WORKDIR /app
# 6. ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ถŒํ•œ์ด ์ œํ•œ๋œ ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž(user)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์†Œ์œ ๊ถŒ์„ ์ด์ „
RUN useradd -m -u 1010 user
# huggingface_cache๋งŒ ๊ถŒํ•œ ์„ค์ • (user ์ƒ์„ฑ ์ดํ›„ ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰)
RUN mkdir -p /app/huggingface_cache && chmod -R 777 /app/huggingface_cache
# 7. requirements.txt ํŒŒ์ผ๊ณผ wheel ํŒŒ์ผ์„ ๋ณต์‚ฌ
COPY ./requirements.txt requirements.txt
COPY ./llama_cpp_python-0.3.11-cp312-cp312-linux_x86_64.whl .
# 8. llama-cpp-python์„ wheel ํŒŒ์ผ๋กœ ์„ค์น˜ ํ›„ ๋‚˜๋จธ์ง€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ (๊ฐ€์ƒํ™˜๊ฒฝ ๋‚ด pip ์‚ฌ์šฉ)
USER root
RUN pip install --no-cache-dir ./llama_cpp_python-0.3.11-cp312-cp312-linux_x86_64.whl
RUN pip install --no-cache-dir --upgrade -r requirements.txt
# 9. user๋กœ ์ „ํ™˜ (์•ฑ ์‹คํ–‰์€ ๋ฐ˜๋“œ์‹œ user๋กœ)
USER user
# 10. ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์—… ํด๋”์— ๋ณต์‚ฌ
COPY . /app
# 11. ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚˜๋ฉด, ์„œ๋ฒ„๋ฅผ ์‹คํ–‰
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]