conversify-model / Dockerfile
koh1018's picture
Dockerfile ์ˆ˜์ •
fc1a2fa
raw
history blame
1.5 kB
# 1. ํŒŒ์ด์ฌ ์ด๋ฏธ์ง€๋ฅผ ์ง€์ •.
FROM python:3.9
# 2. C++ ์ปดํŒŒ์ผ๋Ÿฌ(gcc/g++) ๋ฒ„์ „ 11๊ณผ ํ•„์ˆ˜ ๋นŒ๋“œ ๋„๊ตฌ๋“ค์„ ์„ค์น˜.
RUN apt-get update && apt-get install -y build-essential gcc-11 g++-11 cmake
# 3. ํŒŒ์ด์ฌ์˜ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋„๊ตฌ(pip) ์ž์ฒด๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ.
RUN python3 -m pip install --upgrade pip setuptools wheel
# 4. ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ์ž‘์—… ํด๋”๋ฅผ ๋งŒ๋“ฆ.
WORKDIR /app
# 5. ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ถŒํ•œ์ด ์ œํ•œ๋œ ์‚ฌ์šฉ์ž(user)๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์†Œ์œ ๊ถŒ์„ ์ด์ „.
RUN useradd -m -u 1000 user
RUN chown -R user:user /app
USER user
# 6. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •.
ENV PATH="/home/user/.local/bin:${PATH}"
# 7. requirements.txt ํŒŒ์ผ์„ ๋ณต์‚ฌ.
COPY --chown=user ./requirements.txt requirements.txt
# 8. llama-cpp-python์„ '๋˜‘๋˜‘ํ•˜๊ฒŒ' ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์˜ต์…˜์„ ์„ค์ •.
# - CMAKE_ARGS: ๋ถˆํ•„์š”ํ•œ GPU ์˜ต์…˜์„ ๋ชจ๋‘ ๋”.
# - FORCE_CMAKE=1: CMake๋ฅผ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ํ•จ.
# - CC/CXX: ๋ฐฉ๊ธˆ ์„ค์น˜ํ•œ gcc-11/g++-11์„ ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •.
ARG CMAKE_ARGS="-DLLAMA_CUBLAS=OFF -DLLAMA_HIPBLAS=OFF -DLLAMA_OPENBLAS=OFF"
ENV FORCE_CMAKE=1
ENV CC=gcc-11
ENV CXX=g++-11
# 9. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜.
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
# 10. ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์—… ํด๋”์— ๋ณต์‚ฌ.
COPY --chown=user . /app
# 11. ๋ชจ๋“  ์ค€๋น„๊ฐ€ ๋๋‚˜๋ฉด, ์„œ๋ฒ„๋ฅผ ์‹คํ–‰.
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]