I am expermenting with a container that is very minimal, essentially busybox and one other process. Files cherry-picked from Alpine into an empty rootfs. Not using alpine or any other base images.
Rootfs built by hand.
When I attempt to start a container from this image it fails with the output shown below. However, if I try to start it a second time then it works. And it works thereafter. It’s only the first time it doesn’t work. If I delete the container and recreate from the same image then it fails again, like before, for the first attempt to start and works thereafter.
I suspect I am missing something from the rootfs but I don’t know what. I am using LXD 4.12 on an ArchLinux host running with systemd 248.
lxc testbox 20210427105658.657 ERROR cgfsng - cgroups/cgfsng.c:__cg_mount_direct:1786 - No such file or directory - Failed to mount "/usr/lib/lxc/rootfs/sys/fs/cgroup" with cgroup filesystem type cgroup2
lxc testbox 20210427105658.660 ERROR conf - conf.c:lxc_mount_auto_mounts:725 - No such file or directory - Failed to mount "/sys/fs/cgroup"
lxc testbox 20210427105658.661 ERROR conf - conf.c:lxc_setup:3371 - Failed to setup remaining automatic mounts
lxc testbox 20210427105658.661 ERROR start - start.c:do_start:1218 - Failed to setup container "testbox"
lxc testbox 20210427105658.662 ERROR sync - sync.c:__sync_wait:36 - An error occurred in another process (expected sequence number 5)
lxc testbox 20210427105658.664 ERROR lxccontainer - lxccontainer.c:wait_on_daemonized_start:859 - Received container state "ABORTING" instead of "RUNNING"
lxc testbox 20210427105658.672 ERROR start - start.c:__lxc_start:1999 - Failed to spawn container "testbox"
lxc testbox 20210427105658.672 WARN start - start.c:lxc_abort:1012 - No such process - Failed to send SIGKILL via pidfd 18 for process 79723
lxc 20210427105658.140 WARN commands - commands.c:lxc_cmd_rsp_recv:124 - Connection reset by peer - Failed to receive response for command "get_state"
Here’s a dump of the rootfs image contents:
crw------- root/root 5,1 rootfs/dev/console
crw--w---- root/root 4,1 rootfs/dev/tty1
drwxr-xr-x root/root 0 rootfs/lib/
drwxr-xr-x root/root 0 rootfs/
drwxr-xr-x root/root 0 rootfs/bin/
drwxr-xr-x root/root 0 rootfs/dev/
drwxr-xr-x root/root 0 rootfs/etc/
drwxr-xr-x root/root 0 rootfs/etc/network/
drwxr-xr-x root/root 0 rootfs/etc/network/if-pre-up.d/
drwxr-xr-x root/root 0 rootfs/etc/network/if-up.d/
drwxr-xr-x root/root 0 rootfs/proc/
drwxr-xr-x root/root 0 rootfs/sbin/
drwxr-xr-x root/root 0 rootfs/usr/
drwxr-xr-x root/root 0 rootfs/usr/share/
drwxr-xr-x root/root 0 rootfs/usr/share/udhcpc/
drwxr-xr-x root/root 0 rootfs/var/
drwxr-xr-x root/root 0 rootfs/var/lib/
drwxr-xr-x root/root 0 rootfs/var/lib/misc/
drwxr-xr-x root/root 0 rootfs/var/run/
drwxr-xr-x root/root 0 rootfs/var/tmp/
lrwxrwxrwx root/root 0 rootfs/lib/libc.musl-x86_64.so.1 -> ld-musl-x86_64.so.1
lrwxrwxrwx root/root 0 rootfs/bin/run-parts -> /bin/busybox
lrwxrwxrwx root/root 0 rootfs/bin/sh -> /bin/busybox
lrwxrwxrwx root/root 0 rootfs/sbin/ifup -> /bin/busybox
lrwxrwxrwx root/root 0 rootfs/sbin/init -> /bin/busybox
lrwxrwxrwx root/root 0 rootfs/sbin/ip -> /bin/busybox
lrwxrwxrwx root/root 0 rootfs/sbin/udhcpc -> /bin/busybox
-rw-r--r-- root/root 136 metadata.yaml
-rw-r--r-- root/root 27 rootfs/etc/inittab
-rw-r--r-- root/root 36 rootfs/etc/group
-rw-r--r-- root/root 68 rootfs/etc/passwd
-rwxr-xr-x root/root 3121 rootfs/usr/share/udhcpc/default.script
-rwxr-xr-x root/root 596528 rootfs/lib/ld-musl-x86_64.so.1
-rwxr-xr-x root/root 841288 rootfs/bin/busybox
Any pointers apprecaited, thanks!