On Fri, Aug 20, 2021 at 9:39 PM Igor Torrente <igormtorre...@gmail.com> wrote:
>
> Package: docker.io
> Version: 20.10.5+dfsg1-1+b5
> Severity: important
> Tags: patch upstream
>
> Dear maintainers,
>
> I found a little issue in the dockerd-rootless-setuptool.sh installation 
> script.
> The fix (or workaround) will be sent in this email.
>
> AFAIK this script is based on the official docker script. But the original 
> script assumes
> that the docker binary will be in the same folder as the dockerd-rootless.sh.
> And this is not the case in the Debian package.
>
> Here is my patch to solve this problem
>
> --- /usr/share/docker.io/contrib/dockerd-rootless-setuptool.sh  2021-08-20 
> 10:08:53.200580743 -0300
> +++ /usr/share/docker.io/contrib/dockerd-rootless-setuptool.sh  2021-08-20 
> 10:15:46.489616241 -0300
> @@ -55,12 +55,13 @@
>                 exit 1
>         fi
>
> -       # set BIN
> -       if ! BIN="$(command -v "$DOCKERD_ROOTLESS_SH" 2> /dev/null)"; then
> +       # set BIN and ROOTLESS_BIN
> +       if ! ROOTLESS_BIN="$(command -v "$DOCKERD_ROOTLESS_SH" 2> 
> /dev/null)"; then
>                 ERROR "$DOCKERD_ROOTLESS_SH needs to be present under \$PATH"
>                 exit 1
>         fi
> -       BIN=$(dirname "$BIN")
> +       ROOTLESS_BIN=$(dirname "$ROOTLESS_BIN")
> +       BIN="/usr/bin/"
>
>         # set SYSTEMD
>         if systemctl --user show-environment > /dev/null 2>&1; then
> @@ -294,7 +295,7 @@
>
>                         [Service]
>                         Environment=PATH=$BIN:/sbin:/usr/sbin:$PATH
> -                       ExecStart=$BIN/dockerd-rootless.sh 
> $DOCKERD_ROOTLESS_SH_FLAGS
> +                       ExecStart=$ROOTLESS_BIN/dockerd-rootless.sh 
> $DOCKERD_ROOTLESS_SH_FLAGS
>                         ExecReload=/bin/kill -s HUP \$MAINPID
>                         TimeoutSec=0
>                         RestartSec=2
>
> I also had a problem with kernel modules, so I had to add them manually. I'm 
> not sure how useful
> they would be in other types of installation, but Maybe worth add them to the 
> installation script.
>

I know by default dockerd-rootless-setuptool.sh refuses to run and
wants the user to add /usr/share/docker.io/contrib/ to PATH.
However this script is just copied from upstream without change.

I'm not sure we shall patch it. But a simple workaround is run it like:

  PATH=/usr/share/docker.io/contrib/:$PATH dockerd-rootless-setuptool.sh

> --- /dev/null   2021-08-20 08:47:56.012087970 -0300
> +++ /etc/modprobe.d/overlay.conf        2021-08-19 19:35:17.535171578 -0300
> @@ -0,0 +1,2 @@
> +# Debian-specific kernel patch, introduced in Debian 10 to the overlay2 
> storage driver
> +options overlay permit_mounts_in_userns=1
>

This is actually broken, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=969223
You'd better to install fuse-overlayfs and use that.

> ---  /etc/modules-load.d/modules.con    2021-08-20 10:25:11.522661268 -0300
> +++ /etc/modules-load.d/modules.conf    2021-08-19 19:41:25.866695920 -0300
> @@ -2,3 +2,4 @@
>  #
>  # This file contains the names of kernel modules that should be loaded
>  # at boot time, one per line. Lines beginning with "#" are ignored.
> +br_netfilter
>

-- 
Shengjing Zhu

Reply via email to