Преглед изворни кода

fix docker user to match signald

finn пре 3 година
родитељ
комит
4a82c00a7c
2 измењених фајлова са 15 додато и 1 уклоњено
  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