Dockerfile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. FROM alpine:3.8
  2. LABEL maintainer="searx <https://github.com/asciimoo/searx>"
  3. LABEL description="A privacy-respecting, hackable metasearch engine."
  4. ENV BASE_URL=False IMAGE_PROXY=False HTTP_PROXY_URL= HTTPS_PROXY_URL=
  5. EXPOSE 8888
  6. WORKDIR /usr/local/searx
  7. CMD ["/sbin/tini","--","/usr/local/searx/run.sh"]
  8. RUN adduser -D -h /usr/local/searx -s /bin/sh searx searx \
  9. && echo '#!/bin/sh' >> run.sh \
  10. && echo 'sed -i "s|base_url : False|base_url : $BASE_URL|g" searx/settings.yml' >> run.sh \
  11. && echo 'sed -i "s/image_proxy : False/image_proxy : $IMAGE_PROXY/g" searx/settings.yml' >> run.sh \
  12. && echo 'sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml' >> run.sh \
  13. && echo 'if [ -n "$HTTP_PROXY_URL" ] || [ -n "$HTTPS_PROXY_URL" ]; then' >> run.sh \
  14. && echo ' sed -i "s~^# proxies :~ proxies:\\n http: ${HTTP_PROXY_URL}\\n https: ${HTTPS_PROXY_URL}\\n~" searx/settings.yml' >> run.sh \
  15. && echo 'fi' >> run.sh \
  16. && echo 'python searx/webapp.py' >> run.sh \
  17. && chmod +x run.sh
  18. COPY requirements.txt ./requirements.txt
  19. RUN echo "@commuedge http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
  20. && apk -U add \
  21. build-base \
  22. python \
  23. python-dev \
  24. py-pip \
  25. libxml2 \
  26. libxml2-dev \
  27. libxslt \
  28. libxslt-dev \
  29. libffi-dev \
  30. openssl \
  31. openssl-dev \
  32. ca-certificates \
  33. tini@commuedge \
  34. && pip install --upgrade pip \
  35. && pip install --no-cache -r requirements.txt \
  36. && apk del \
  37. build-base \
  38. python-dev \
  39. libffi-dev \
  40. openssl-dev \
  41. libxslt-dev \
  42. libxml2-dev \
  43. openssl-dev \
  44. ca-certificates \
  45. && rm -f /var/cache/apk/*
  46. COPY . .
  47. RUN chown -R searx:searx *
  48. USER searx
  49. RUN sed -i "s/127.0.0.1/0.0.0.0/g" searx/settings.yml