File size: 1,770 Bytes
0920784
185fa5b
 
0920784
 
185fa5b
 
 
0920784
 
 
185fa5b
0920784
 
 
fc1a2fa
0920784
 
 
 
 
6cbb5c6
 
0920784
 
b9ab970
f018bf3
6facfb7
8b098af
0920784
8b098af
0920784
8b098af
0920784
51cb93f
0920784
8b098af
34f160a
b9ab970
51cb93f
 
b9ab970
0d7bbb7
34f160a
b9ab970
34f160a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 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"]