Browse Source

fix docker user to match signald

finn 3 years ago
parent
commit
4a82c00a7c
2 changed files with 15 additions and 1 deletions
  1. 1 0
      Dockerfile
  2. 14 1
      docker-run.sh

+ 1 - 0
Dockerfile

@@ -47,5 +47,6 @@ RUN apk add git && pip3 install .[all] && apk del git \
   && cp mautrix_signal/example-config.yaml . && rm -rf mautrix_signal
   && cp mautrix_signal/example-config.yaml . && rm -rf mautrix_signal
 
 
 VOLUME /data
 VOLUME /data
+ENV UID=1337 GID=1337
 
 
 CMD ["/opt/mautrix-signal/docker-run.sh"]
 CMD ["/opt/mautrix-signal/docker-run.sh"]

+ 14 - 1
docker-run.sh

@@ -1,6 +1,16 @@
 #!/bin/sh
 #!/bin/sh
 cd /opt/mautrix-signal
 cd /opt/mautrix-signal
 
 
+function fixperms {
+	chown -R $UID:$GID /data
+
+	# /opt/mautrix-signal is read-only, so disable file logging if it's pointing there.
+	if [[ "$(yq e '.logging.handlers.file.filename' /data/config.yaml)" == "./mautrix-signal.log" ]]; then
+		yq -I4 e -i 'del(.logging.root.handlers[] | select(. == "file"))' /data/config.yaml
+		yq -I4 e -i 'del(.logging.handlers.file)' /data/config.yaml
+	fi
+}
+
 if [ ! -f /data/config.yaml ]; then
 if [ ! -f /data/config.yaml ]; then
 	cp example-config.yaml /data/config.yaml
 	cp example-config.yaml /data/config.yaml
 	yq -I4 e -i 'del(.logging.root.handlers[] | select(. == "file"))' /data/config.yaml
 	yq -I4 e -i 'del(.logging.root.handlers[] | select(. == "file"))' /data/config.yaml
@@ -13,6 +23,7 @@ if [ ! -f /data/config.yaml ]; then
 	echo "Copied default config file to /data/config.yaml"
 	echo "Copied default config file to /data/config.yaml"
 	echo "Modify that config file to your liking."
 	echo "Modify that config file to your liking."
 	echo "Start the container again after that to generate the registration file."
 	echo "Start the container again after that to generate the registration file."
+	fixperms
 	exit
 	exit
 fi
 fi
 
 
@@ -21,7 +32,9 @@ if [ ! -f /data/registration.yaml ]; then
 	echo "Didn't find a registration file."
 	echo "Didn't find a registration file."
 	echo "Generated one for you."
 	echo "Generated one for you."
 	echo "See https://docs.mau.fi/bridges/general/registering-appservices.html on how to use it."
 	echo "See https://docs.mau.fi/bridges/general/registering-appservices.html on how to use it."
+	fixperms
 	exit
 	exit
 fi
 fi
 
 
-exec python3 -m mautrix_signal -c /data/config.yaml
+fixperms
+exec su-exec $UID:$GID python3 -m mautrix_signal -c /data/config.yaml