This commit is contained in:
35
backend/Dockerfile
Normal file
35
backend/Dockerfile
Normal file
@@ -0,0 +1,35 @@
|
||||
# --- Stage 1: Builder (Ovdje se događa kompajliranje) ---
|
||||
FROM python:3.11-slim AS builder
|
||||
|
||||
# Instaliraj alate za build
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
libpq-dev \
|
||||
gcc \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
COPY requirements.txt .
|
||||
# Instaliraj sve u /install direktorij
|
||||
RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
|
||||
|
||||
|
||||
# --- Stage 2: Final (Samo čisti runtime) ---
|
||||
FROM python:3.11-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libpq5 && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /app
|
||||
COPY --from=builder /install /usr/local
|
||||
COPY . .
|
||||
|
||||
# 1. Kreiraj korisnika i postavi dozvole dok si još ROOT
|
||||
RUN useradd -m appuser && \
|
||||
mkdir -p /app/staticfiles && \
|
||||
chown -R appuser:appuser /app
|
||||
|
||||
# 2. Sada prijeđi na ne-root korisnika
|
||||
USER appuser
|
||||
|
||||
RUN chmod +x entrypoint.sh
|
||||
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||
Reference in New Issue
Block a user