summaryrefslogtreecommitdiff
path: root/contrib/dockerd-rootless-setuptool.sh
diff options
context:
space:
mode:
authorAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>2020-11-20 04:39:14 +0900
committerAkihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>2020-11-24 15:10:27 +0900
commitab09458e210fe113964424f8dcc91b0ddfc30722 (patch)
tree34098641f8f5a92ba2af03fa1ca808c34b999131 /contrib/dockerd-rootless-setuptool.sh
parent6c0a036dce2051cc0d73221965e76e3d2e6a8a3a (diff)
downloaddocker-ab09458e210fe113964424f8dcc91b0ddfc30722.tar.gz
dockerd-rootless-setuptool.sh: show more helpful error messages
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Diffstat (limited to 'contrib/dockerd-rootless-setuptool.sh')
-rwxr-xr-xcontrib/dockerd-rootless-setuptool.sh22
1 files changed, 20 insertions, 2 deletions
diff --git a/contrib/dockerd-rootless-setuptool.sh b/contrib/dockerd-rootless-setuptool.sh
index fbe3a88c11..92279b0daa 100755
--- a/contrib/dockerd-rootless-setuptool.sh
+++ b/contrib/dockerd-rootless-setuptool.sh
@@ -269,6 +269,16 @@ cmd_entrypoint_check() {
INFO "Requirements are satisfied"
}
+show_systemd_error() {
+ n="20"
+ ERROR "Failed to start ${SYSTEMD_UNIT}. Run \`journalctl -n ${n} --no-pager --user --unit ${SYSTEMD_UNIT}\` to show the error log."
+ ERROR "Before retrying installation, you might need to uninstall the current setup: \`$0 uninstall -f ; ${BIN}/rootlesskit rm -rf ${HOME}/.local/share/docker\`"
+ if journalctl -q -n ${n} --user --unit ${SYSTEMD_UNIT} | grep -qF "/run/xtables.lock: Permission denied"; then
+ ERROR "Failure likely related to https://github.com/moby/moby/issues/41230"
+ ERROR "This may work as a workaround: \`sudo dnf install -y policycoreutils-python-utils && sudo semanage permissive -a iptables_t\`"
+ fi
+}
+
# install (systemd)
install_systemd() {
mkdir -p "${CFG_DIR}/systemd/user"
@@ -307,13 +317,21 @@ install_systemd() {
INFO "starting systemd service ${SYSTEMD_UNIT}"
(
set -x
- systemctl --user start "${SYSTEMD_UNIT}"
+ if ! systemctl --user start "${SYSTEMD_UNIT}"; then
+ set +x
+ show_systemd_error
+ exit 1
+ fi
sleep 3
)
fi
(
set -x
- systemctl --user --no-pager --full status "${SYSTEMD_UNIT}"
+ if ! systemctl --user --no-pager --full status "${SYSTEMD_UNIT}"; then
+ set +x
+ show_systemd_error
+ exit 1
+ fi
DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock" $BIN/docker version
systemctl --user enable "${SYSTEMD_UNIT}"
)