File size: 2,014 Bytes
2723800
60feb93
7c838ba
60feb93
 
e49e567
 
c319101
 
 
60feb93
e070e7d
e49e567
60feb93
7c838ba
e49e567
941e888
7c838ba
e49e567
e070e7d
e49e567
 
 
1c5367e
7c838ba
 
 
 
 
 
 
 
 
 
1c5367e
 
 
 
7c838ba
 
 
 
 
60feb93
27badb4
 
 
 
 
1c5367e
27badb4
 
 
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
47
48
49
50
51
52
53
FROM python:3.10

# ํŒจํ‚ค์ง€ ์„ค์น˜๋Š” root ๊ถŒํ•œ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •
WORKDIR /code

# [๋‹จ๊ณ„ 1] ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์„ค์น˜
COPY packages.txt .
RUN apt-get update && apt-get install -y --no-install-recommends \
    $(cat packages.txt) \
    && apt-get clean && rm -rf /var/lib/apt/lists/*

# [๋‹จ๊ณ„ 2] ๊ธฐ๋ณธ ๋„๊ตฌ ์—…๋ฐ์ดํŠธ
RUN pip install --no-cache-dir --upgrade pip setuptools wheel

# [๋‹จ๊ณ„ 3] AI ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๊ด€๋ จ ๋ฌด๊ฑฐ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋จผ์ € ์„ค์น˜ (OCR ์šฉ๋„)
RUN pip install --no-cache-dir opencv-python-headless
RUN pip install --no-cache-dir paddlepaddle==3.0.0
RUN pip install --no-cache-dir "paddleocr>=2.7.0"

# [๋‹จ๊ณ„ 4] ๋‚˜๋จธ์ง€ ์ผ๋ฐ˜ ํŒจํ‚ค์ง€ ์„ค์น˜
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# ๐Ÿšจ [์ˆ˜์ • ํฌ์ธํŠธ 1] ๋ฃจํŠธ(root) ๊ถŒํ•œ์ผ ๋•Œ OS ์‹œ์Šคํ…œ ์˜์กด์„ฑ๋งŒ ์„ค์น˜
RUN playwright install-deps chromium

# ==========================================
# ๐ŸŒŸ [ํ•ต์‹ฌ ์ˆ˜์ •] Hugging Face Spaces ์œ ์ € ๊ถŒํ•œ ์„ค์ •
# ==========================================
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH

# ๐Ÿšจ [์ˆ˜์ • ํฌ์ธํŠธ 2] ์œ ์ €(user)๋กœ ๊ถŒํ•œ์ด ๋ฐ”๋€ ์งํ›„์— ๋ธŒ๋ผ์šฐ์ € ์‹ค์ œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ!
# ์ด๋ ‡๊ฒŒ ํ•ด์•ผ /home/user/.cache/ms-playwright/ ์œ„์น˜์— ์ •ํ™•ํžˆ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
RUN playwright install chromium

# ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ ์ผ๋ฐ˜ ์œ ์ €์˜ ํด๋”๋กœ ๋ณ€๊ฒฝ
WORKDIR $HOME/app

# [๋‹จ๊ณ„ 5] ๋‚ด ์ฝ”๋“œ ๋ณต์‚ฌ (์†Œ์œ ๊ถŒ์„ ๋ฐฉ๊ธˆ ๋งŒ๋“  user๋กœ ์ง€์ •)
COPY --chown=user:user . $HOME/app

# ==========================================
# ๐Ÿšจ [๊ฒฝ๋กœ ๋ณต๊ตฌ] myapp ํด๋” ์•ˆ์˜ ํŒŒ์ผ๋“ค์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก PYTHONPATH ์ถ”๊ฐ€
# ==========================================
ENV PYTHONPATH="${PYTHONPATH}:$HOME/app/myapp"

EXPOSE 7860

# ๐Ÿšจ [๊ฒฝ๋กœ ๋ณต๊ตฌ] myapp ํด๋” ์•ˆ์˜ app.py๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ์›์ƒ๋ณต๊ตฌ
CMD ["uvicorn", "myapp.app:app", "--host", "0.0.0.0", "--port", "7860"]