searxng/Dockerfile
2024-10-20 13:38:00 -03:00

49 lines
No EOL
1.5 KiB
Docker

FROM python:3.9-slim
# Install necessary system dependencies
RUN apt-get update && apt-get install -y \
python3-dev \
python3-babel \
python3-venv \
uwsgi \
uwsgi-plugin-python3 \
git \
build-essential \
libxslt-dev \
zlib1g-dev \
libffi-dev \
libssl-dev && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Create user and directory structure
RUN useradd --shell /bin/bash --system --home-dir /usr/local/searxng --comment 'Privacy-respecting metasearch engine' searxng && \
mkdir -p /usr/local/searxng && \
chown -R searxng:searxng /usr/local/searxng
# Switch to non-root user
USER searxng
# Set working directory
WORKDIR /usr/local/searxng
# Clone SearXNG repository
RUN git clone https://github.com/searxng/searxng /usr/local/searxng/searxng-src
# Set up Python virtual environment
RUN python3 -m venv /usr/local/searxng/searx-pyenv && \
echo "source /usr/local/searxng/searx-pyenv/bin/activate" >> ~/.bashrc
# Activate virtual environment and install dependencies
RUN /usr/local/searxng/searx-pyenv/bin/pip install -U pip setuptools wheel pyyaml && \
cd /usr/local/searxng/searxng-src && \
/usr/local/searxng/searx-pyenv/bin/pip install --use-pep517 --no-build-isolation -r /app/requirements.txt
# Install additional dependencies
RUN /usr/local/searxng/searx-pyenv/bin/pip install uwsgi
# Expose the port
EXPOSE 8888
# Start the application
CMD ["sh", "-c", "source /usr/local/searxng/searx-pyenv/bin/activate && python searx/webapp.py"]