| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | FROM docker.io/library/python:3.13-slim AS builderRUN apt-get update \ && apt-get install -y --no-install-recommends \    build-essential \    brotli \    # lxml    libxml2-dev \    libxslt1-dev \    zlib1g-dev \    # uwsgi    libpcre3-dev \ && rm -rf /var/lib/apt/lists/*WORKDIR /usr/local/searxng/COPY ./requirements.txt ./requirements.txt# Readd on #4707 "--mount=type=cache,id=pip,target=/root/.cache/pip"RUN python -m venv ./venv \ && . ./venv/bin/activate \ && pip install -r requirements.txt \ && pip install "uwsgi~=2.0"COPY ./searx/ ./searx/ARG TIMESTAMP_SETTINGS=0ARG TIMESTAMP_UWSGI=0RUN python -m compileall -q searx \ && touch -c --date=@$TIMESTAMP_SETTINGS ./searx/settings.yml \ && touch -c --date=@$TIMESTAMP_UWSGI ./dockerfiles/uwsgi.ini \ && find /usr/local/searxng/searx/static \    \( -name '*.html' -o -name '*.css' -o -name '*.js' -o -name '*.svg' -o -name '*.ttf' -o -name '*.eot' \) \    -type f -exec gzip -9 -k {} + -exec brotli --best {} +ARG SEARXNG_UID=977ARG SEARXNG_GID=977RUN grep -m1 root /etc/group > /tmp/.searxng.group \ && grep -m1 root /etc/passwd > /tmp/.searxng.passwd \ && echo "searxng:x:$SEARXNG_GID:" >> /tmp/.searxng.group \ && echo "searxng:x:$SEARXNG_UID:$SEARXNG_GID:searxng:/usr/local/searxng:/bin/bash" >> /tmp/.searxng.passwdFROM docker.io/library/python:3.13-slimRUN apt-get update \ && apt-get install -y --no-install-recommends \    # healthcheck    wget \    # lxml (ARMv7)    libxslt1.1 \    # uwsgi    libpcre3 \    libxml2 \    mailcap \ && rm -rf /var/lib/apt/lists/*COPY --chown=root:root --from=builder /tmp/.searxng.passwd /etc/passwdCOPY --chown=root:root --from=builder /tmp/.searxng.group /etc/groupARG LABEL_DATE="0001-01-01T00:00:00Z"ARG GIT_URL="unspecified"ARG SEARXNG_GIT_VERSION="unspecified"ARG LABEL_VCS_REF="unspecified"ARG LABEL_VCS_URL="unspecified"WORKDIR /usr/local/searxng/COPY --chown=searxng:searxng --from=builder /usr/local/searxng/venv/ ./venv/COPY --chown=searxng:searxng --from=builder /usr/local/searxng/searx/ ./searx/COPY --chown=searxng:searxng ./dockerfiles/ ./dockerfiles/LABEL org.opencontainers.image.authors="searxng <$GIT_URL>" \      org.opencontainers.image.created=$LABEL_DATE \      org.opencontainers.image.description="A privacy-respecting, hackable metasearch engine" \      org.opencontainers.image.documentation="https://github.com/searxng/searxng-docker" \      org.opencontainers.image.licenses="AGPL-3.0-or-later" \      org.opencontainers.image.revision=$LABEL_VCS_REF \      org.opencontainers.image.source=$LABEL_VCS_URL \      org.opencontainers.image.title="searxng" \      org.opencontainers.image.url=$LABEL_VCS_URL \      org.opencontainers.image.version=$SEARXNG_GIT_VERSIONENV CONFIG_PATH=/etc/searxng \    DATA_PATH=/var/cache/searxngENV SEARXNG_VERSION=$SEARXNG_GIT_VERSION \    INSTANCE_NAME=searxng \    AUTOCOMPLETE="" \    BASE_URL="" \    BIND_ADDRESS=[::]:8080 \    MORTY_KEY="" \    MORTY_URL="" \    SEARXNG_SETTINGS_PATH=$CONFIG_PATH/settings.yml \    UWSGI_SETTINGS_PATH=$CONFIG_PATH/uwsgi.ini \    UWSGI_WORKERS=%k \    UWSGI_THREADS=4VOLUME $CONFIG_PATHVOLUME $DATA_PATHEXPOSE 8080HEALTHCHECK CMD wget --quiet --tries=1 --spider http://localhost:8080/healthz || exit 1ENTRYPOINT ["/usr/local/searxng/dockerfiles/docker-entrypoint.sh"]
 |