# Low-interaction SSH honeypot image (Podman/Docker compatible).
FROM python:3.12-slim

# Don't write .pyc, flush stdout/stderr immediately so `podman logs` is live.
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    HONEYPOT_HOST_KEY=/data/host_key \
    HONEYPOT_LOG_DIR=/data/logs \
    HONEYPOT_BIND=0.0.0.0 \
    HONEYPOT_PORT=2222

WORKDIR /app

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

COPY ssh_honeypot.py .

# Run as an unprivileged user. /data is where the host key and logs persist;
# mount a volume here so they survive container restarts.
RUN useradd --uid 1000 --create-home --shell /usr/sbin/nologin honeypot \
    && mkdir -p /data/logs \
    && chown -R honeypot:honeypot /data
USER honeypot

VOLUME ["/data"]
EXPOSE 2222

ENTRYPOINT ["python", "ssh_honeypot.py"]
