ml-model-restapi / Dockerfile
fahmiaziz98
refactor dockerfile 3 fix permission user non root
200871a
raw
history blame
1.32 kB
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
ENV PATH="/home/appuser/.local/bin:$PATH"
RUN set -ex \
&& addgroup --system --gid 1001 appgroup \
&& adduser --system --uid 1001 --gid 1001 --home /home/appuser appuser \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y libjpeg-dev zlib1g-dev \
# πŸ”¨ Buat folder ml-models dan subfolder-nya + set permission
&& mkdir -p /app/ml-models/tinybert-sentiment-analysis \
/app/ml-models/tinybert-disaster-tweet \
/app/ml-models/vit-human-pose-classification \
&& chown -R appuser:appgroup /app/ml-models \
&& chmod -R u+w /app/ml-models \
&& apt-get autoremove -y \
&& apt-get clean -y \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /wheels /wheels
COPY requirements.txt .
RUN pip install --no-cache-dir --no-warn-script-location --no-index --find-links=/wheels -r requirements.txt
COPY . .
USER appuser
EXPOSE 7860
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]