summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile53
1 files changed, 34 insertions, 19 deletions
diff --git a/Dockerfile b/Dockerfile
index b0b5a60..aa51c28 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,28 +1,22 @@
-FROM alpine:3.10
+FROM alpine:3.15
ENTRYPOINT ["/sbin/tini","--","/usr/local/searx/dockerfiles/docker-entrypoint.sh"]
EXPOSE 8080
VOLUME /etc/searx
VOLUME /var/log/uwsgi
-ARG VERSION_GITCOMMIT=unknown
-ARG SEARX_GIT_VERSION=unknown
-
ARG SEARX_GID=977
ARG SEARX_UID=977
RUN addgroup -g ${SEARX_GID} searx && \
adduser -u ${SEARX_UID} -D -h /usr/local/searx -s /bin/sh -G searx searx
-ARG TIMESTAMP_SETTINGS=0
-ARG TIMESTAMP_UWSGI=0
-ARG LABEL_VCS_REF=
-ARG LABEL_VCS_URL=
-
ENV INSTANCE_NAME=searx \
AUTOCOMPLETE= \
BASE_URL= \
MORTY_KEY= \
- MORTY_URL=
+ MORTY_URL= \
+ SEARX_SETTINGS_PATH=/etc/searx/settings.yml \
+ UWSGI_SETTINGS_PATH=/etc/searx/uwsgi.ini
WORKDIR /usr/local/searx
@@ -44,29 +38,43 @@ RUN apk upgrade --no-cache \
ca-certificates \
su-exec \
python3 \
+ py3-pip \
libxml2 \
libxslt \
openssl \
tini \
uwsgi \
uwsgi-python3 \
- && pip3 install --upgrade pip \
+ brotli \
+ && pip3 install --upgrade pip wheel setuptools \
&& pip3 install --no-cache -r requirements.txt \
- && apk del build-dependencies
+ && apk del build-dependencies \
+ && rm -rf /root/.cache
-COPY --chown=searx:searx . .
+COPY searx ./searx
+COPY dockerfiles ./dockerfiles
-RUN su searx -c "/usr/bin/python3 -m compileall -q searx"; \
+ARG TIMESTAMP_SETTINGS=0
+ARG TIMESTAMP_UWSGI=0
+ARG VERSION_GITCOMMIT=unknown
+
+RUN /usr/bin/python3 -m compileall -q searx; \
touch -c --date=@${TIMESTAMP_SETTINGS} searx/settings.yml; \
touch -c --date=@${TIMESTAMP_UWSGI} dockerfiles/uwsgi.ini; \
if [ ! -z $VERSION_GITCOMMIT ]; then\
echo "VERSION_STRING = VERSION_STRING + \"-$VERSION_GITCOMMIT\"" >> /usr/local/searx/searx/version.py; \
- fi
+ fi; \
+ find /usr/local/searx/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 this argument at the end since it change each time
+# Keep these arguments at the end to prevent redundant layer rebuilds
ARG LABEL_DATE=
-LABEL maintainer="searx <https://github.com/asciimoo/searx>" \
+ARG GIT_URL=unknown
+ARG SEARX_GIT_VERSION=unknown
+ARG LABEL_VCS_REF=
+ARG LABEL_VCS_URL=
+LABEL maintainer="searx <${GIT_URL}>" \
description="A privacy-respecting, hackable metasearch engine." \
version="${SEARX_GIT_VERSION}" \
org.label-schema.schema-version="1.0" \
@@ -76,4 +84,11 @@ LABEL maintainer="searx <https://github.com/asciimoo/searx>" \
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/searx/searx-docker"
+ org.label-schema.usage="https://github.com/searx/searx-docker" \
+ org.opencontainers.image.title="searx" \
+ org.opencontainers.image.version="${SEARX_GIT_VERSION}" \
+ 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/searx/searx-docker"