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