diff --git a/docker/files/chown.sh b/docker/files/chown.sh
index e5964b9b4f910805c4406f3d687755c9fbe805ac..41a2087c9f05b28ed2d0c7e691332e9576529d4b 100755
--- a/docker/files/chown.sh
+++ b/docker/files/chown.sh
@@ -1,3 +1,13 @@
 #!/bin/sh
 
-chown -R 1000:1000 $FILE
+UID=1000
+base_dir="/srv"
+
+chown $UID:$UID "$FILE"
+dir=$(dirname "$FILE")
+# Fix parent directory's ownership until we hit the base_dir or a directory that
+# Already belongs to the user
+while [ "$dir" != "$base_dir" ] && [ $(stat -c %u "$dir") != $UID ]; do
+    chown $UID:$UID "$dir"
+    dir=$(dirname "$dir")
+done