From 7b15f7800ba16d5ddf97e83b3df83a813eed6cde Mon Sep 17 00:00:00 2001 From: neounix Date: Sat, 6 Jun 2020 19:01:54 +0700 Subject: [PATCH] Create initial redis.socketed.template.yml This file adds the required directives to set up Redis in Discourse with a unix domain socket. See Also: https://meta.discourse.org/t/discourse-container-with-unixsocket-for-redis/153945/5 --- templates/redis.socketed.template.yml | 84 +++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 templates/redis.socketed.template.yml diff --git a/templates/redis.socketed.template.yml b/templates/redis.socketed.template.yml new file mode 100644 index 000000000..2d6178076 --- /dev/null +++ b/templates/redis.socketed.template.yml @@ -0,0 +1,84 @@ +run: + - file: + path: /etc/service/redis/run + chmod: "+x" + contents: | + #!/bin/sh + exec 2>&1 + exec thpoff chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf + - file: + path: /etc/service/redis/log/run + chmod: "+x" + contents: | + #!/bin/sh + mkdir -p /var/log/redis + exec svlogd /var/log/redis + - file: + path: /etc/runit/3.d/10-redis + chmod: "+x" + contents: | + #!/bin/bash + sv stop redis + - replace: + filename: "/etc/redis/redis.conf" + from: "port 6379" + to: "port 0" + - replace: + filename: "/etc/redis/redis.conf" + from: "# unixsocket /tmp/redis.sock" + to: "unixsocket /shared/tmp/redis.sock" + - replace: + filename: "/etc/redis/redis.conf" + from: "# unixsocketperm 700" + to: "unixsocketperm 777" + - replace: + filename: "/etc/redis/redis.conf" + from: /^pidfile.*$/ + to: "" + + - exec: + cmd: + - install -d -m 0755 -o redis -g redis /shared/redis_data + + - replace: + filename: "/etc/redis/redis.conf" + from: /^logfile.*$/ + to: 'logfile ""' + + - replace: + filename: "/etc/redis/redis.conf" + from: /^bind .*$/ + to: "" + + - replace: + filename: "/etc/redis/redis.conf" + from: /^dir .*$/ + to: "dir /shared/redis_data" + + - replace: + filename: "/etc/redis/redis.conf" + from: /^protected-mode yes/ + to: "protected-mode no" + + - exec: + cmd: echo redis installed + hook: redis + - exec: cat /etc/redis/redis.conf | grep logfile + + - exec: + background: true + cmd: exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf + + - exec: sleep 10 + +# we can not migrate without redis, launch it if needed +hooks: + before_code: + - exec: + background: true + cmd: exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf + after_code: + - replace: + filename: /etc/service/unicorn/run + from: "# redis" + to: sv start redis || exit 1