mirror of
https://github.com/laramies/theHarvester.git
synced 2026-09-22 01:24:56 +02:00
66 lines
1.7 KiB
Docker
66 lines
1.7 KiB
Docker
FROM debian:trixie-slim
|
|
|
|
LABEL maintainer="@jay_townsend1 & @NotoriousRebel1"
|
|
|
|
RUN useradd -m -u 1000 -s /bin/bash theharvester
|
|
|
|
# Install dependencies for building Python from source
|
|
RUN apt update && apt dist-upgrade -qqy && apt install -y \
|
|
curl \
|
|
build-essential \
|
|
libssl-dev \
|
|
zlib1g-dev \
|
|
libbz2-dev \
|
|
libreadline-dev \
|
|
libsqlite3-dev \
|
|
wget \
|
|
llvm \
|
|
libncurses5-dev \
|
|
libncursesw5-dev \
|
|
xz-utils \
|
|
tk-dev \
|
|
libffi-dev \
|
|
liblzma-dev \
|
|
python3-dev \
|
|
git \
|
|
gcc \
|
|
vim \
|
|
&& apt clean && apt autoremove -qqy && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Python 3.13.7 from source
|
|
RUN curl -fsSL https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tgz -o Python-3.13.7.tgz \
|
|
&& tar -xvf Python-3.13.7.tgz \
|
|
&& cd Python-3.13.7 \
|
|
&& ./configure --enable-optimizations \
|
|
&& make -j 4 \
|
|
&& make altinstall \
|
|
&& cd / && rm -rf /Python-3.13.7 /Python-3.13.7.tgz
|
|
|
|
# Install uv
|
|
RUN curl -fsSL https://astral.sh/uv/install.sh | UV_INSTALL_DIR=/usr/local/bin sh
|
|
|
|
# Set workdir and copy project files
|
|
WORKDIR /app
|
|
COPY . /app
|
|
|
|
# Ensure files are owned by theharvester user (for uv cache/venv writes)
|
|
RUN chown -R theharvester:theharvester /app
|
|
|
|
# Use non-root user
|
|
USER theharvester
|
|
|
|
# Configure uv to use the freshly installed python
|
|
ENV UV_PYTHON=python3.13
|
|
# Ensure uv bin shims are on PATH for the user (uv places venv bins in .venv by default)
|
|
ENV PATH=/app/.venv/bin:$PATH
|
|
|
|
# Create and sync environment using uv
|
|
# Installs dependencies from pyproject.toml
|
|
RUN uv venv --python $UV_PYTHON && uv sync
|
|
|
|
# Expose port if the service listens on 80
|
|
EXPOSE 80
|
|
|
|
# Run the application as theharvester user
|
|
ENTRYPOINT ["python", "restfulHarvest.py", "-H", "0.0.0.0", "-p", "80"]
|