lima-vm / alpine-lima

Create an alpine based image for lima
Apache License 2.0
40 stars 26 forks source link

Make editions that install the regular alpine packages #107

Open afbjorklund opened 1 year ago

afbjorklund commented 1 year ago

I made some "editions" of alpine-lima, that installs the regular packages:

These apk are now available upstream, making the installation smoother.


Only added some refactoring, to make using "nerdctl-full" more explicit:

To make "nerdctl" mean only nerdctl, and call the bundle "nerdctl-full"

afbjorklund commented 1 year ago

I'm not sure you want the actual editions in the main project:

https://github.com/afbjorklund/alpine-lima/tree/editions

Just adding the knobs and options, to make them possible...

export LIMA_INSTALL_NERDCTL_FULL=false

export LIMA_INSTALL_NERDCTL=false
export LIMA_INSTALL_CONTAINERD=false
export LIMA_INSTALL_BUILDKIT=false
export LIMA_INSTALL_PODMAN=false
export LIMA_INSTALL_DOCKER=false
afbjorklund commented 1 year ago

Basically these editions are a merge of template://alpine and *-rootful

https://github.com/lima-vm/lima/blob/master/examples/alpine.yaml

It is possible to do it with YAML, just wanted to see what the size was like:

66M iso/alpine-lima-std-3.18.0-x86_64.iso
111M    iso/alpine-lima-pm-3.18.0-x86_64.iso
147M    iso/alpine-lima-de-3.18.0-x86_64.iso
151M    iso/alpine-lima-nc-3.18.0-x86_64.iso

Might include nerdctld for the nerdctl.sock, haven't decided (an option)

For the legacy tools that only support the "compatibility" remote socket...

afbjorklund commented 1 year ago

The "nerdctl-full" distribution currently requires glibc, there is no variant for musl:

It might offer a fully static version in the future, but the dynamic binaries are smaller...

Maybe in the future, there will also be glibc and musl dynamic variants of nerdctl-full ?


https://github.com/containerd/nerdctl/releases/tag/v1.4.0

# nerdctl (full distribution)
- nerdctl: v1.4.0
- containerd: v1.7.1
- runc: v1.1.7
- CNI plugins: v1.3.0
- BuildKit: v0.11.6
- Stargz Snapshotter: v0.14.3
- imgcrypt: v1.1.7
- RootlessKit: v1.1.0
- slirp4netns: v1.2.0
- bypass4netns: v0.3.0
- fuse-overlayfs: v1.12
- containerd-fuse-overlayfs: v1.0.6
- Kubo (IPFS): v0.20.0
- Tini: v0.19.0
- buildg: v0.4.1

The rootless containers don't work without systemd, and Alpine uses OpenRC.

Also systemd requires glibc, making it a no-go as long as it is using musl-libc...