mirror of
				https://github.com/searxng/searxng
				synced 2024-01-01 19:24:07 +01:00 
			
		
		
		
	 bd3f526859
			
		
	
	
		bd3f526859
		
			
		
	
	
	
	
		
			
			* Docker: add UWSGI_WORKERS and UWSGI_THREAD. UWSGI_WORKERS specifies the number of process. UWSGI_THREADS specifies the number of threads. The Docker convention is to specify the whole configuration through environment variables. While not done in SearXNG, these two additional variables allows admins to skip uwsgi.ini In additional, https://github.com/searxng/preview-environments starts Docker without additional files through searxng-helm-chat. Each instance consumes 1Go of RAM which is a lot especially when there are a lot of instances / pull requests. * [scripts] add environments UWSGI_WORKERS and UWSGI_THREADS - UWSGI_WORKERS specifies the number of process. - UWSGI_THREADS specifies the number of threads. Templates for uwsgi scripts can be tested by:: UWSGI_WORKERS=8 UWSGI_THREADS=9 \ ./utils/searxng.sh --cmd\ eval "echo \"$(cat utils/templates/etc/uwsgi/*/searxng.ini*)\""\ | grep "workers\|threads" Signed-off-by: Markus Heiser <markus.heiser@darmarit.de> --------- Signed-off-by: Markus Heiser <markus.heiser@darmarit.de> Co-authored-by: Markus Heiser <markus.heiser@darmarit.de>
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM alpine:3.18
 | |
| ENTRYPOINT ["/sbin/tini","--","/usr/local/searxng/dockerfiles/docker-entrypoint.sh"]
 | |
| EXPOSE 8080
 | |
| VOLUME /etc/searxng
 | |
| 
 | |
| ARG SEARXNG_GID=977
 | |
| ARG SEARXNG_UID=977
 | |
| 
 | |
| RUN addgroup -g ${SEARXNG_GID} searxng && \
 | |
|     adduser -u ${SEARXNG_UID} -D -h /usr/local/searxng -s /bin/sh -G searxng searxng
 | |
| 
 | |
| ENV INSTANCE_NAME=searxng \
 | |
|     AUTOCOMPLETE= \
 | |
|     BASE_URL= \
 | |
|     MORTY_KEY= \
 | |
|     MORTY_URL= \
 | |
|     SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml \
 | |
|     UWSGI_SETTINGS_PATH=/etc/searxng/uwsgi.ini \
 | |
|     UWSGI_WORKERS=%k \
 | |
|     UWSGI_THREADS=4
 | |
| 
 | |
| WORKDIR /usr/local/searxng
 | |
| 
 | |
| COPY requirements.txt ./requirements.txt
 | |
| 
 | |
| RUN apk add --no-cache -t build-dependencies \
 | |
|     build-base \
 | |
|     py3-setuptools \
 | |
|     python3-dev \
 | |
|     libffi-dev \
 | |
|     libxslt-dev \
 | |
|     libxml2-dev \
 | |
|     openssl-dev \
 | |
|     tar \
 | |
|     git \
 | |
|  && apk add --no-cache \
 | |
|     ca-certificates \
 | |
|     su-exec \
 | |
|     python3 \
 | |
|     py3-pip \
 | |
|     libxml2 \
 | |
|     libxslt \
 | |
|     openssl \
 | |
|     tini \
 | |
|     uwsgi \
 | |
|     uwsgi-python3 \
 | |
|     brotli \
 | |
|  && pip3 install --no-cache -r requirements.txt \
 | |
|  && apk del build-dependencies \
 | |
|  && rm -rf /root/.cache
 | |
| 
 | |
| COPY --chown=searxng:searxng dockerfiles ./dockerfiles
 | |
| COPY --chown=searxng:searxng searx ./searx
 | |
| 
 | |
| ARG TIMESTAMP_SETTINGS=0
 | |
| ARG TIMESTAMP_UWSGI=0
 | |
| ARG VERSION_GITCOMMIT=unknown
 | |
| 
 | |
| RUN su searxng -c "/usr/bin/python3 -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 -a \( -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 {} \+
 | |
| 
 | |
| # Keep these arguments at the end to prevent redundant layer rebuilds
 | |
| ARG LABEL_DATE=
 | |
| ARG GIT_URL=unknown
 | |
| ARG SEARXNG_GIT_VERSION=unknown
 | |
| ARG SEARXNG_DOCKER_TAG=unknown
 | |
| ARG LABEL_VCS_REF=
 | |
| ARG LABEL_VCS_URL=
 | |
| LABEL maintainer="searxng <${GIT_URL}>" \
 | |
|       description="A privacy-respecting, hackable metasearch engine." \
 | |
|       version="${SEARXNG_GIT_VERSION}" \
 | |
|       org.label-schema.schema-version="1.0" \
 | |
|       org.label-schema.name="searxng" \
 | |
|       org.label-schema.version="${SEARXNG_GIT_VERSION}" \
 | |
|       org.label-schema.url="${LABEL_VCS_URL}" \
 | |
|       org.label-schema.vcs-ref=${LABEL_VCS_REF} \
 | |
|       org.label-schema.vcs-url=${LABEL_VCS_URL} \
 | |
|       org.label-schema.build-date="${LABEL_DATE}" \
 | |
|       org.label-schema.usage="https://github.com/searxng/searxng-docker" \
 | |
|       org.opencontainers.image.title="searxng" \
 | |
|       org.opencontainers.image.version="${SEARXNG_DOCKER_TAG}" \
 | |
|       org.opencontainers.image.url="${LABEL_VCS_URL}" \
 | |
|       org.opencontainers.image.revision=${LABEL_VCS_REF} \
 | |
|       org.opencontainers.image.source=${LABEL_VCS_URL} \
 | |
|       org.opencontainers.image.created="${LABEL_DATE}" \
 | |
|       org.opencontainers.image.documentation="https://github.com/searxng/searxng-docker"
 |