소스 검색

Merge pull request #236 from thefinn93/fix-docker-uid

fix docker user
Finn 3 년 전
부모
커밋
65514c046d
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
 
 VOLUME /data
+ENV UID=1337 GID=1337
 
 CMD ["/opt/mautrix-signal/docker-run.sh"]

+ 14 - 1
docker-run.sh

@@ -1,6 +1,16 @@
 #!/bin/sh
 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
 	cp example-config.yaml /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 "Modify that config file to your liking."
 	echo "Start the container again after that to generate the registration file."
+	fixperms
 	exit
 fi
 
@@ -21,7 +32,9 @@ if [ ! -f /data/registration.yaml ]; then
 	echo "Didn't find a registration file."
 	echo "Generated one for you."
 	echo "See https://docs.mau.fi/bridges/general/registering-appservices.html on how to use it."
+	fixperms
 	exit
 fi
 
-exec python3 -m mautrix_signal -c /data/config.yaml
+fixperms
+exec su-exec $UID:$GID python3 -m mautrix_signal -c /data/config.yaml