File size: 1,141 Bytes
7933a0e
3910467
58a73bf
 
 
2bbdfee
7933a0e
3910467
7933a0e
2bbdfee
3910467
2bbdfee
3910467
067c765
2bbdfee
14067dc
067c765
 
 
 
 
 
58a73bf
2bbdfee
 
067c765
2bbdfee
 
 
067c765
 
2bbdfee
 
 
14067dc
067c765
 
58a73bf
067c765
 
2bbdfee
067c765
2bbdfee
 
14067dc
067c765
 
2bbdfee
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
FROM python:3.11.11-slim AS build

ENV PIP_DEFAULT_TIMEOUT=100 \
    PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PIP_NO_CACHE_DIR=1

WORKDIR /app

COPY requirements.txt .

RUN pip install --upgrade pip && pip wheel --no-cache-dir --wheel-dir /wheels -r requirements.txt


FROM python:3.11.11-slim AS final

WORKDIR /app

ENV PIP_DEFAULT_TIMEOUT=100 \
    PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PIP_NO_CACHE_DIR=1

RUN set -ex \
    && addgroup --system --gid 1001 appgroup \
    && adduser --system --uid 1001 --gid 1001 --no-create-home appuser \
    && apt-get update \
    && apt-get upgrade -y \
    && apt-get install -y libjpeg-dev zlib1g-dev \
    # 🔨 Buat folder ml-models untuk menyimpan model
    && mkdir -p /app/ml-models && chown -R appuser:appgroup /app/ml-models \
    && apt-get autoremove -y \
    && apt-get clean -y \
    && rm -rf /var/lib/apt/lists/*

COPY --from=build /app/requirements.txt .
RUN pip install -r requirements.txt

COPY ./artifacts artifacts
COPY ./api api

EXPOSE 7860

USER appuser

CMD ["uvicorn", "api.main:app", "--host", "0.0.0.0", "--port", "7860"]