nestybox/sysbox

sysbox-in-docker does not work on ubuntu-focal without some Dockerfile changes

Opened this issue · 0 comments

Create a GitHub issue with the label "Bug"

Don't have permissions

Add a label corresponding to the Sysbox release

Again, don't have permissions but this happened on master at 620453973fcb20f7cd9ca37d7e623ba91fdc663f

Describe the issue as clearly and completely as possible.

I was trying to use sysbox-in-docker following the instructions here but running make -C <path_to_sysbox> sysbox-in-docker ubuntu-focal gave me the following error

make: Entering directory '<path_to_sysbox> '

** Building the test container **

[+] Building 0.8s (17/30)                                                                                                                                                                           docker:default
 => [internal] load build definition from Dockerfile.ubuntu-focal                                                                                                                                             0.0s
 => => transferring dockerfile: 8.53kB                                                                                                                                                                        0.0s
 => WARN: LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 114)                                                                                            0.0s
 => WARN: LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 115)                                                                                            0.0s
 => WARN: JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 221)                                                                             0.0s
 => [internal] load metadata for docker.io/library/ubuntu:focal                                                                                                                                               0.0s
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
 => [internal] load build context                                                                                                                                                                             0.0s
 => => transferring context: 268B                                                                                                                                                                             0.0s
 => [ 9/25] ADD https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker /etc/bash_completion.d/docker.sh                                                      0.2s
 => [ 1/25] FROM docker.io/library/ubuntu:focal                                                                                                                                                               0.0s
 => CACHED [ 2/25] RUN apt-get update && apt-get install -y     acl     build-essential     gcc-x86-64-linux-gnu     libc6-dev-amd64-cross     linux-libc-dev-amd64-cross     gcc-aarch64-linux-gnu     libc  0.0s
 => CACHED [ 3/25] RUN wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz &&     tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz &&     /usr/local/go/bin/go env -w GONOSUMDB=/root/nestybox               0.0s
 => CACHED [ 4/25] RUN go env -w GONOSUMDB=/root/nestybox &&     mkdir -p "/go/src" "/go/bin" &&     chmod -R 777 "/go"                                                                                       0.0s
 => CACHED [ 5/25] RUN useradd -u1000 -m -d/home/rootless -s/bin/bash rootless                                                                                                                                0.0s
 => CACHED [ 6/25] RUN cd /tmp     && git clone https://github.com/sstephenson/bats.git     && cd bats     && git reset --hard 03608115df2071fff4eaaff1605768c275e5f81f     && ./install.sh /usr/local     &  0.0s
 => CACHED [ 7/25] RUN if [ "amd64" = "amd64" ] ; then arch_str="x86_64";     elif [ "amd64" = "arm64" ]; then arch_str="aarch_64";     else echo "Unsupported platform: amd64"; exit; fi     && curl -LO ht  0.0s
 => CACHED [ 8/25] RUN curl -fsSL https://get.docker.com -o get-docker.sh     && sh get-docker.sh                                                                                                             0.0s
 => CACHED [ 9/25] ADD https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker /etc/bash_completion.d/docker.sh                                               0.0s
 => CACHED [10/25] RUN go install github.com/go-delve/delve/cmd/dlv@latest                                                                                                                                    0.0s
 => CACHED [11/25] RUN cd /tmp && curl -LO "https://dl.k8s.io/release/v1.28.2/bin/linux/amd64/kubectl"     && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl     && rm /tmp/kubectl           0.0s
 => ERROR [12/25] RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/ap  0.5s
------
 > [12/25] RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list     && echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list     && mkdir -p /usr/share/keyrings     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg     && apt-get update     && apt-get install -y cri-o cri-o-runc:
0.334 /bin/sh: 1: gpg: not found
0.350   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
0.350                                  Dload  Upload   Total   Spent    Left  Speed
100  1093  100  1093    0     0  11268      0 --:--:-- --:--:-- --:--:-- 11385
0.447 (23) Failed writing body
------

 3 warnings found (use --debug to expand):
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 114)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 115)
 - JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 221)
Dockerfile.ubuntu-focal:160
--------------------
 159 |     # works with Sysbox.
 160 | >>> RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list \
 161 | >>>     && echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list \
 162 | >>>     && mkdir -p /usr/share/keyrings \
 163 | >>>     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg \
 164 | >>>     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg \
 165 | >>>     && apt-get update \
 166 | >>>     && apt-get install -y cri-o cri-o-runc
 167 |
--------------------
ERROR: failed to solve: process "/bin/sh -c echo \"deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/ /\" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list     && echo \"deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/ /\" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list     && mkdir -p /usr/share/keyrings     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg     && apt-get update     && apt-get install -y cri-o cri-o-runc" did not complete successfully: exit code: 127
make: *** [Makefile:463: test-img] Error 1
make: Leaving directory '<path_to_sysbox>'

Describe how to best reproduce it.

git clone --recurse-submodules https://github.com/nestybox/sysbox.git nestybox/sysbox
make -C nestybox/sysbox sysbox-in-docker ubuntu-focal

Include information about the host's Linux version (e.g., lsb_release, uname -a).

                            ....               ****@*******************
              .',:clooo:  .:looooo:.           ------------------------
           .;looooooooc  .oooooooooo'          OS: Ubuntu focal 20.04 x86_64
        .;looooool:,''.  :ooooooooooc          Host: Precision 5570
       ;looool;.         'oooooooooo,          Kernel: 5.15.0-88-generic
      ;clool'             .cooooooc.  ,,       Uptime: 3 days, 6 hours, 4 mins
         ...                ......  .:oo,      Packages: 2206 (dpkg), 15 (snap), 197 (brew)
  .;clol:,.                        .loooo'     Shell: zsh 5.9
 :ooooooooo,                        'ooool     Display (LG HDR 4K): 3840x2160 @ 60Hz *
'ooooooooooo.                        loooo.    Display (SHP1515): 1920x1200 @ 60Hz
'ooooooooool                         coooo.    Display (ARZOPA): 1920x1080 @ 30Hz
 ,loooooooc.                        .loooo.    Display (SyncMaster): 1920x1200 @ 60Hz
   .,;;;'.                          ;ooooc     DE: Gnome 3.36.9
       ...                         ,ooool.     WM: Mutter (X11)
    .cooooc.              ..',,'.  .cooo.      WM Theme: Yaru
      ;ooooo:.           ;oooooooc.  :l.       Theme: Yaru [GTK2/3/4]
       .coooooc,..      coooooooooo.           Icons: Yaru [GTK2/3/4]
         .:ooooooolc:. .ooooooooooo'           Font: Ubuntu (11pt) [GTK2/3/4]
           .':loooooo;  ,oooooooooc            Cursor: Yaru (24px)
               ..';::c'  .;loooo:'             Terminal: tmux 3.0a
                             .                 CPU: 12th Gen Intel(R) Core(TM) i9-12900H (20) @ 5.00 GHz
                                               GPU 1: NVIDIA Device 25BA (3D)
                                               GPU 2: Intel Device 46A6 (VGA compatible)
                                               Memory: 14.64 GiB / 62.47 GiB (23%)
                                               Swap: 1.50 GiB / 2.00 GiB (75%)
                                               Disk (/): 650.19 GiB / 929.04 GiB (70%) - ext4
                                               Local IP (enx349971e7b9cf): 192.168.178.48/24 *
                                               Battery: 100% [AC Connected]
                                               Locale: en_US.UTF-8

Workaround

I managed to get past the above error by adding gpg to tests/Dockerfile.ubuntu-focal but then I got the following error

** Building the test container **

[+] Building 8.5s (17/30)                                                                                                                                                                           docker:default
 => [internal] load build definition from Dockerfile.ubuntu-focal                                                                                                                                             0.0s
 => => transferring dockerfile: 8.54kB                                                                                                                                                                        0.0s
 => WARN: LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 115)                                                                                            0.0s
 => WARN: LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 116)                                                                                            0.0s
 => WARN: JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 222)                                                                             0.0s
 => [internal] load metadata for docker.io/library/ubuntu:focal                                                                                                                                               0.0s
 => [internal] load .dockerignore                                                                                                                                                                             0.0s
 => => transferring context: 2B                                                                                                                                                                               0.0s
 => [ 1/25] FROM docker.io/library/ubuntu:focal                                                                                                                                                               0.0s
 => [internal] load build context                                                                                                                                                                             0.0s
 => => transferring context: 268B                                                                                                                                                                             0.0s
 => [ 9/25] ADD https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker /etc/bash_completion.d/docker.sh                                                      0.1s
 => CACHED [ 2/25] RUN apt-get update && apt-get install -y     acl     build-essential     gcc-x86-64-linux-gnu     libc6-dev-amd64-cross     linux-libc-dev-amd64-cross     gcc-aarch64-linux-gnu     libc  0.0s
 => CACHED [ 3/25] RUN wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz &&     tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz &&     /usr/local/go/bin/go env -w GONOSUMDB=/root/nestybox               0.0s
 => CACHED [ 4/25] RUN go env -w GONOSUMDB=/root/nestybox &&     mkdir -p "/go/src" "/go/bin" &&     chmod -R 777 "/go"                                                                                       0.0s
 => CACHED [ 5/25] RUN useradd -u1000 -m -d/home/rootless -s/bin/bash rootless                                                                                                                                0.0s
 => CACHED [ 6/25] RUN cd /tmp     && git clone https://github.com/sstephenson/bats.git     && cd bats     && git reset --hard 03608115df2071fff4eaaff1605768c275e5f81f     && ./install.sh /usr/local     &  0.0s
 => CACHED [ 7/25] RUN if [ "amd64" = "amd64" ] ; then arch_str="x86_64";     elif [ "amd64" = "arm64" ]; then arch_str="aarch_64";     else echo "Unsupported platform: amd64"; exit; fi     && curl -LO ht  0.0s
 => CACHED [ 8/25] RUN curl -fsSL https://get.docker.com -o get-docker.sh     && sh get-docker.sh                                                                                                             0.0s
 => CACHED [ 9/25] ADD https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker /etc/bash_completion.d/docker.sh                                               0.0s
 => CACHED [10/25] RUN go install github.com/go-delve/delve/cmd/dlv@latest                                                                                                                                    0.0s
 => CACHED [11/25] RUN cd /tmp && curl -LO "https://dl.k8s.io/release/v1.28.2/bin/linux/amd64/kubectl"     && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl     && rm /tmp/kubectl           0.0s
 => ERROR [12/25] RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/ap  8.4s
------
 > [12/25] RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list     && echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list     && mkdir -p /usr/share/keyrings     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg     && apt-get update     && apt-get install -y cri-o cri-o-runc:
0.358   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
0.358                                  Dload  Upload   Total   Spent    Left  Speed
100  1093  100  1093    0     0  13011      0 --:--:-- --:--:-- --:--:-- 12858
0.469   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
0.469                                  Dload  Upload   Total   Spent    Left  Speed
100  1093  100  1093    0     0  10821      0 --:--:-- --:--:-- --:--:-- 10821
0.866 Get:1 https://download.docker.com/linux/ubuntu focal InRelease [57.7 kB]
0.964 Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
1.042 Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
1.061 Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
1.113 Get:5 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages [57.5 kB]
1.472 Hit:6 http://archive.ubuntu.com/ubuntu focal-backports InRelease
1.679 Get:7 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04  InRelease [1639 B]
1.703 Get:8 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04  InRelease [1632 B]
1.763 Get:9 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [3836 kB]
1.873 Get:10 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [4302 kB]
2.551 Get:11 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04  Packages [8832 B]
2.694 Get:12 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.28/xUbuntu_22.04  Packages [1802 B]
2.937 Get:13 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1252 kB]
3.211 Get:14 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [3805 kB]
3.908 Get:15 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [3957 kB]
4.665 Get:16 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1539 kB]
5.090 Fetched 19.1 MB in 4s (4384 kB/s)
5.090 Reading package lists...
6.577 Reading package lists...
7.903 Building dependency tree...
8.148 Reading state information...
8.244 Some packages could not be installed. This may mean that you have
8.244 requested an impossible situation or if you are using the unstable
8.244 distribution that some required packages have not yet been created
8.244 or been moved out of Incoming.
8.244 The following information may help to resolve the situation:
8.244
8.244 The following packages have unmet dependencies:
8.347  cri-o-runc : Depends: libc6 (>= 2.34) but 2.31-0ubuntu9.16 is to be installed
8.366 E: Unable to correct problems, you have held broken packages.
------

 3 warnings found (use --debug to expand):
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 115)
 - LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format (line 116)
 - JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 222)
Dockerfile.ubuntu-focal:161
--------------------
 160 |     # works with Sysbox.
 161 | >>> RUN echo "deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list \
 162 | >>>     && echo "deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/ /" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list \
 163 | >>>     && mkdir -p /usr/share/keyrings \
 164 | >>>     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg \
 165 | >>>     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg \
 166 | >>>     && apt-get update \
 167 | >>>     && apt-get install -y cri-o cri-o-runc
 168 |
--------------------
ERROR: failed to solve: process "/bin/sh -c echo \"deb [signed-by=/usr/share/keyrings/libcontainers-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/ /\" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list     && echo \"deb [signed-by=/usr/share/keyrings/libcontainers-crio-archive-keyring.gpg] https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/ /\" > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.list     && mkdir -p /usr/share/keyrings     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-archive-keyring.gpg     && curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${crio_version}/${crio_os}/Release.key | gpg --dearmor -o /usr/share/keyrings/libcontainers-crio-archive-keyring.gpg     && apt-get update     && apt-get install -y cri-o cri-o-runc" did not complete successfully: exit code: 100
make: *** [Makefile:463: test-img] Error 1

I also got past the above by changing ARG crio_os=xUbuntu_22.04 to ARG crio_os=xUbuntu_20.04 but then I encountered another error (which I cannot reproduce now) and switched to tag v0.6.3 before I finally got sysbox-in-docker working

I guess it should be fine on master at 620453973fcb20f7cd9ca37d7e623ba91fdc663f with the above changes