FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    DEBIAN_FRONTEND=noninteractive

WORKDIR /app

# System deps: exiftool + sshd + bash (sqlite CLI not required for Python sqlite3)
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      libimage-exiftool-perl \
      openssh-server \
      bash \
 && rm -rf /var/lib/apt/lists/*

# Unprivileged user for the app / SSH
RUN useradd -m -d /home/ctfuser -s /bin/bash ctfuser

# SSH minimal setup
RUN mkdir -p /run/sshd && chmod 755 /run/sshd && ssh-keygen -A

COPY chall/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY /chall /app

RUN chmod +x /app/entrypoint.sh && mkdir -p /app/uploads && chmod 755 /app/uploads

RUN mkdir -p /data /app/uploads /run/sshd \
    && chown -R ctfuser:ctfuser /app /app/uploads /data \
    && chmod 755 /app

EXPOSE 8000
EXPOSE 22

ENTRYPOINT ["/bin/bash", "/app/entrypoint.sh"]
