fahmiaziz98 commited on
Commit
4eb341e
·
1 Parent(s): 200871a

refactor dockerfile 2

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -25
Dockerfile CHANGED
@@ -3,45 +3,42 @@ FROM python:3.11.11-slim AS build
3
  ENV PIP_DEFAULT_TIMEOUT=100 \
4
  PYTHONUNBUFFERED=1 \
5
  PIP_DISABLE_PIP_VERSION_CHECK=1 \
6
- PIP_NO_CACHE_DIR=1
 
7
 
8
- WORKDIR /app
 
 
 
 
9
 
10
- COPY requirements.txt .
 
11
 
12
- RUN pip install --upgrade pip && pip wheel --no-cache-dir --wheel-dir /wheels -r requirements.txt
13
 
14
- FROM python:3.11.11-slim AS final
 
15
 
16
- ENV PATH="/home/appuser/.local/bin:$PATH"
17
 
18
- RUN set -ex \
19
- && addgroup --system --gid 1001 appgroup \
20
- && adduser --system --uid 1001 --gid 1001 --home /home/appuser appuser \
21
- && apt-get update \
22
- && apt-get upgrade -y \
23
- && apt-get install -y libjpeg-dev zlib1g-dev \
24
- # 🔨 Buat folder ml-models dan subfolder-nya + set permission
25
- && mkdir -p /app/ml-models/tinybert-sentiment-analysis \
26
- /app/ml-models/tinybert-disaster-tweet \
27
- /app/ml-models/vit-human-pose-classification \
28
- && chown -R appuser:appgroup /app/ml-models \
29
- && chmod -R u+w /app/ml-models \
30
  && apt-get autoremove -y \
31
  && apt-get clean -y \
32
  && rm -rf /var/lib/apt/lists/*
33
 
34
- WORKDIR /app
 
35
 
36
- COPY --from=build /wheels /wheels
37
- COPY requirements.txt .
38
 
39
- RUN pip install --no-cache-dir --no-warn-script-location --no-index --find-links=/wheels -r requirements.txt
40
 
41
- COPY . .
42
 
43
- USER appuser
44
 
45
  EXPOSE 7860
46
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
47
-
 
3
  ENV PIP_DEFAULT_TIMEOUT=100 \
4
  PYTHONUNBUFFERED=1 \
5
  PIP_DISABLE_PIP_VERSION_CHECK=1 \
6
+ PIP_NO_CACHE_DIR=1 \
7
+ PATH="/home/user/.local/bin:$PATH"
8
 
9
+ RUN apt-get update && apt-get install -y \
10
+ build-essential \
11
+ libjpeg-dev \
12
+ zlib1g-dev \
13
+ && rm -rf /var/lib/apt/lists/*
14
 
15
+ RUN useradd -m -u 1000 user
16
+ USER user
17
 
18
+ WORKDIR /app
19
 
20
+ COPY --chown=user requirements.txt .
21
+ RUN pip install --no-cache-dir --user -r requirements.txt
22
 
23
+ FROM python:3.11.11-slim
24
 
25
+ RUN apt-get update && apt-get install -y \
26
+ libjpeg-dev \
27
+ zlib1g-dev \
 
 
 
 
 
 
 
 
 
28
  && apt-get autoremove -y \
29
  && apt-get clean -y \
30
  && rm -rf /var/lib/apt/lists/*
31
 
32
+ RUN useradd -m -u 1000 user
33
+ USER user
34
 
35
+ ENV PATH="/home/user/.local/bin:$PATH"
 
36
 
37
+ WORKDIR /app
38
 
39
+ COPY --from=build /home/user/.local /home/user/.local
40
 
41
+ COPY --chown=user . .
42
 
43
  EXPOSE 7860
44
  CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]