Browse code

Merge pull request #41697 from AkihiroSuda/improve-rootless-setuptool-error

dockerd-rootless-setuptool.sh: show more helpful error messages

Tibor Vass authored on 2020/12/09 12:58:59
Showing 1 changed files
... ...
@@ -269,6 +269,16 @@ cmd_entrypoint_check() {
269 269
 	INFO "Requirements are satisfied"
270 270
 }
271 271
 
272
+show_systemd_error() {
273
+	n="20"
274
+	ERROR "Failed to start ${SYSTEMD_UNIT}. Run \`journalctl -n ${n} --no-pager --user --unit ${SYSTEMD_UNIT}\` to show the error log."
275
+	ERROR "Before retrying installation, you might need to uninstall the current setup: \`$0 uninstall -f ; ${BIN}/rootlesskit rm -rf ${HOME}/.local/share/docker\`"
276
+	if journalctl -q -n ${n} --user --unit ${SYSTEMD_UNIT} | grep -qF "/run/xtables.lock: Permission denied"; then
277
+		ERROR "Failure likely related to https://github.com/moby/moby/issues/41230"
278
+		ERROR "This may work as a workaround: \`sudo dnf install -y policycoreutils-python-utils && sudo semanage permissive -a iptables_t\`"
279
+	fi
280
+}
281
+
272 282
 # install (systemd)
273 283
 install_systemd() {
274 284
 	mkdir -p "${CFG_DIR}/systemd/user"
... ...
@@ -307,13 +317,21 @@ install_systemd() {
307 307
 		INFO "starting systemd service ${SYSTEMD_UNIT}"
308 308
 		(
309 309
 			set -x
310
-			systemctl --user start "${SYSTEMD_UNIT}"
310
+			if ! systemctl --user start "${SYSTEMD_UNIT}"; then
311
+				set +x
312
+				show_systemd_error
313
+				exit 1
314
+			fi
311 315
 			sleep 3
312 316
 		)
313 317
 	fi
314 318
 	(
315 319
 		set -x
316
-		systemctl --user --no-pager --full status "${SYSTEMD_UNIT}"
320
+		if ! systemctl --user --no-pager --full status "${SYSTEMD_UNIT}"; then
321
+			set +x
322
+			show_systemd_error
323
+			exit 1
324
+		fi
317 325
 		DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock" $BIN/docker version
318 326
 		systemctl --user enable "${SYSTEMD_UNIT}"
319 327
 	)