mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-10-30 03:56:23 -05:00 
			
		
		
		
	Fix: Run migration lock as the correct user (#9604)
This commit is contained in:
		
							
								
								
									
										7
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/init-migrations/migrate.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								docker/rootfs/etc/s6-overlay/s6-rc.d/init-migrations/migrate.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| #!/command/with-contenv /usr/bin/bash | ||||
| # shellcheck shell=bash | ||||
| declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}" | ||||
|  | ||||
| # shellcheck disable=SC2164 | ||||
| cd "${PAPERLESS_SRC_DIR}" | ||||
| exec s6-setlock -n "${data_dir}/migration_lock" python3 manage.py migrate --skip-checks --no-input | ||||
| @@ -1,20 +1,12 @@ | ||||
| #!/command/with-contenv /usr/bin/bash | ||||
| # shellcheck shell=bash | ||||
| declare -r log_prefix="[init-migrations]" | ||||
| declare -r data_dir="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}" | ||||
|  | ||||
| ( | ||||
| 	# flock is in place to prevent multiple containers from doing migrations | ||||
| 	# simultaneously. This also ensures that the db is ready when the command | ||||
| 	# of the current container starts. | ||||
| 	flock 200 | ||||
| 	echo "${log_prefix} Apply database migrations..." | ||||
| 	cd "${PAPERLESS_SRC_DIR}" | ||||
| echo "${log_prefix} Apply database migrations..." | ||||
|  | ||||
| 	if [[ -n "${USER_IS_NON_ROOT}" ]]; then | ||||
| 		exec python3 manage.py migrate --skip-checks --no-input | ||||
| 	else | ||||
| 		exec s6-setuidgid paperless python3 manage.py migrate --skip-checks --no-input | ||||
| 	fi | ||||
|  | ||||
| ) 200>"${data_dir}/migration_lock" | ||||
| # The whole migrate, with flock, needs to run as the right user | ||||
| if [[ -n "${USER_IS_NON_ROOT}" ]]; then | ||||
| 	exec /etc/s6-overlay/s6-rc.d/init-migrations/migrate.sh | ||||
| else | ||||
| 	exec s6-setuidgid paperless /etc/s6-overlay/s6-rc.d/init-migrations/migrate.sh | ||||
| fi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Trenton H
					Trenton H