mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
49 lines
No EOL
1.5 KiB
Docker
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"] |