From fbe40001d35ea5cf74c92f35d76c642a480a5c9f Mon Sep 17 00:00:00 2001 From: Dalf Date: Sat, 29 Jun 2019 11:59:13 +0200 Subject: Update Docker image See #1561 , use uwsgi and Alpine Linux Volume: /var/log/uwsgi contains error log for 2 days (file uwsgi.log) /etc/searx contains the settings.yml and uwsgi.ini files. The docker image creates them if they don't exist. The two files can be modified after the first run. See below. Environement variables: MORTY_URL : external URL of Morty MORTY_KEY : base64 encoded key BASE_URL : external URL of Searx BIND_ADDRESS : internal HTTP port to listen to Labels : org.label-schema.schema.* Parameters: -h : display this help -d : will update the settings and quit immediately (settings.yml and uwsgi.ini) -f : always update the settings (previous version saved with suffix .old). without this parameter, the new settings are copied with suffix .new When the Docker image contains newer settings: - without -f parameter: the new versions are copied to /etc/searx/settings.yml.new and /etc/searx/uwsgi.ini.new. - with -f parameter: the old versions are renamed with .old suffix. The new version replaces /etc/searx/settings.yml and /etc/searx/uwsgi.ini Build using "./manage.sh docker_build", add "push" as parameter also push the Docker image. The script requires a git repository to work (it makes sure that the last git tag matches searx/version.py) "git describe" is used to create a meaningful version. Example : 0.15.0-90-49c5bcb4-dirty (dirty means that the docker image was made with uncommited changes). Use "docker inspect -f {{.Config.Labels.version}} searx" to get the version of an existing image. .dockerignore based on .gitignore .travis.yml: include docker stage --- dockerfiles/uwsgi.ini | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 dockerfiles/uwsgi.ini (limited to 'dockerfiles/uwsgi.ini') diff --git a/dockerfiles/uwsgi.ini b/dockerfiles/uwsgi.ini new file mode 100644 index 000000000..fa2fd6302 --- /dev/null +++ b/dockerfiles/uwsgi.ini @@ -0,0 +1,33 @@ +[uwsgi] +# Who will run the code +uid = searx +gid = searx + +# Number of workers (usually CPU count) +workers = 4 + +# The right granted on the created socket +chmod-socket = 666 + +# Plugin to use and interpretor config +single-interpreter = true +master = true +plugin = python3 +lazy-apps = true +enable-threads = true + +# Module to import +module = searx.webapp + +# Virtualenv and python path +pythonpath = /usr/local/searx/ +chdir = /usr/local/searx/searx/ + +# Disable logging for privacy +disable-logging=True + +# But keep errors for 2 days +touch-logrotate = /run/uwsgi-logrotate +unique-cron = 15 0 -1 -1 -1 { touch /run/uwsgi-logrotate } +log-backupname = /var/log/uwsgi/uwsgi.log.1 +logto = /var/log/uwsgi/uwsgi.log -- cgit v1.2.3