89luca89 / distrobox

Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
https://distrobox.it/
GNU General Public License v3.0
9.83k stars 401 forks source link

[Error] Cannot enter container with either podman or lilipod on SteamOS 3.4 #1510

Open Sunspark-007 opened 1 month ago

Sunspark-007 commented 1 month ago

Describe the bug After successfully creating an Ubuntu container using lilipod (failed with podman as per issue #1509), trying to enter the container does not work.

To Reproduce With Podman:

(deck@steamdeck bin)$ distrobox enter ubuntu-24-04
Error: no such container ubuntu-24-04
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]: 
Creating the container ubuntu-24-04
Error: open /etc/containers/policy.json: no such file or directory

With Lilipod:

(deck@steamdeck bin)$ distrobox enter ubuntu-24-04
2024/08/07 14:29:18 no such object: [ubuntu-24-04]
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]: 
Creating the container ubuntu-24-04
Distrobox named 'ubuntu-24-04' already exists.
To enter, run:
distrobox enter ubuntu-24-04
 Error: could not start entrypoint.

Expected behavior For the container to open.

Additional context Related to bug report https://github.com/89luca89/distrobox/issues/1509

Sunspark-007 commented 1 month ago

This may be fixed as I figured out the policy.json file in #1509 but there are issues likely related to #1511 I have not been able to do stuff in the image yet as I think there may be a uid/gid issue.

Sunspark-007 commented 1 month ago

I have cleaned the installation and started over with lilipod.. it still doesn't let me enter.. Why? Why does it say no such object and want to start over with some fedora user registry?

(deck@steamdeck ~)$ distrobox-enter ubuntu
2024/08/09 16:49:18 no such object: [ubuntu]
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]: n
Ok. For creating it, run this command:
        distrobox create <name-of-container> --image <remote>/<docker>:<tag>
(deck@steamdeck ~)$ distrobox-list
ID           | NAME                 | STATUS             | IMAGE                         
1d41c853af58 | ubuntu               | stopped            | ubuntu:24.04     
(1)(deck@steamdeck ~)$ distrobox-enter ubuntu
2024/08/09 16:55:52 no such object: [ubuntu]
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]: 
Creating the container ubuntu
Distrobox named 'ubuntu' already exists.
To enter, run:

distrobox enter ubuntu

 Error: could not start entrypoint.

Verbose log:

(deck@steamdeck ~)$ distrobox enter ubuntu --verbose
+ '[' -z ubuntu ']'
+ '[' '!' -t 0 ']'
+ '[' '!' -t 1 ']'
+ case "${container_manager}" in
+ command -v podman
+ command -v podman-launcher
+ command -v docker
+ command -v lilipod
+ container_manager=lilipod
+ command -v lilipod
+ '[' 1 -ne 0 ']'
+ container_manager='lilipod --log-level debug'
+ '[' 0 -ne 0 ']'
+ container_home=/home/deck
+ container_path=/home/deck/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
+ unshare_groups=0
+ container_status=unknown
++ lilipod --log-level debug inspect --type container --format 'container_status={{.State.Status}};
        unshare_groups={{ index .Config.Labels "distrobox.unshare_groups" }};
        {{range .Config.Env}}{{if slice . 0 5 | eq "HOME="}}container_home={{slice . 5 | printf "%q"}};{{end}}{{end}}
        {{range .Config.Env}}{{if slice . 0 5 | eq "PATH="}}container_path={{slice . 5 | printf "%q"}}{{end}}{{end}}' ubuntu
2024/08/09 16:58:36 no such object: [ubuntu]
+ eval ''
+ '[' 0 -ne 0 ']'
+ '[' unknown = unknown ']'
+ '[' 0 -eq 1 ']'
+ printf 'Create it now, out of image %s? [Y/n]: ' registry.fedoraproject.org/fedora-toolbox:39
Create it now, out of image registry.fedoraproject.org/fedora-toolbox:39? [Y/n]: + read -r response
Y
+ response=Y
+ case "${response}" in
++ dirname /home/deck/.local/bin/distrobox-enter
+ create_command=/home/deck/.local/bin/distrobox-create
+ '[' 0 -ne 0 ']'
+ create_command='/home/deck/.local/bin/distrobox-create --yes -i registry.fedoraproject.org/fedora-toolbox:39 -n ubuntu'
+ printf 'Creating the container %s\n' ubuntu
Creating the container ubuntu
+ '[' 0 -ne 1 ']'
+ eval '/home/deck/.local/bin/distrobox-create --yes -i registry.fedoraproject.org/fedora-toolbox:39 -n ubuntu'
++ /home/deck/.local/bin/distrobox-create --yes -i registry.fedoraproject.org/fedora-toolbox:39 -n ubuntu
Distrobox named 'ubuntu' already exists.
To enter, run:

distrobox enter ubuntu

+ '[' unknown '!=' running ']'
++ date -u +%FT%T
+ log_timestamp=2024-08-09T20:58:58
+ lilipod --log-level debug start ubuntu
proc_utils.go:24 [debug] ensuring we're either root or fake-root
proc_utils.go:64 [debug] executing [lilipod rootless-helper --log-level debug lilipod --log-level debug start ubuntu]
proc_utils.go:83 [debug] tty not specified, using cmd.Start
proc_utils.go:92 [debug] tty not specified, waiting for child to start
proc_utils.go:95 [debug] tty not specified, releasing child
++ lilipod --log-level debug inspect --type container --format '{{.State.Status}}' ubuntu
+ '[' stopped '!=' running ']'
+ printf '\033[31m Error: could not start entrypoint.\n\033[0m'
 Error: could not start entrypoint.
++ lilipod --log-level debug logs ubuntu
+ container_manager_log=
+ printf '%s\n' ''

+ exit 1
+ cleanup
+ rm -f /home/deck/.cache/distrobox/.ubuntu.fifo
+ '[' -n '' ']'
+ '[' 1 -eq 1 ']'
+ lilipod --log-level debug logs ubuntu
(1)(deck@steamdeck ~)$ 

May be a regression with #1333 as I have 0.0.3 installed. Removing the image and creating it again with 0.0.2 did not resolve the issue. Still says could not start entrypoint.

Update: I tried swapping out the distrobox scripts down to 1.6 to see if that would help, but all had the entry issue. Please let me know what further info I can provide that might help figure out why the entry point doesn't work.