- Containers still do have an whole POSIX-ly userland with shell and coreutils.
You can extract every container onto an disk and make an static linux kernel boot it.
What's in a docker image is entirely up to the image creator. Docker containers don't necessarily have to use a complete userland + init system as a base.In practice, containers do have a shell, since a few things (Dockerfile RUN & CMD in non-exec mode, environment variable substitution, docker exec shell) dont work without it.
But you don't have to have all that, you can have just a single executable in the container, like here for example:
https://github.com/containous/traefik-library-image/blob/f24...
>Make is well on its own, especially for everything that is not portable C
Do you have examples of non trivial projects that use only Makefiles and nothing else as a build system?
My own "distro": https://github.com/ainriver/tonic
Its a messy pile of rules tho, but easy to hack some more stuff in or just generate a quick rootfs.
Beside from that, i remember the syslinux bootloader being that way. The linux kernel, busybox and the buildroot distribution also use kconfig, which is Makefile with some config engine in C. If you maintain packages for a distributions, you see what other stuff is used instead of autotools.
Make is well on its own, especially for everything that is not portable C.
>server applications ship entire operating systems in glorified chroots;
- Docker containers are running chroot'ed
- Containers still do have an whole POSIX-ly userland with shell and coreutils. You can extract every container onto an disk and make an static linux kernel boot it.