16 ms·
Finch: An open-source client for container development
- c7DJTLrn 4y agoAnybody know what the difference is between this and Lima? It already offers a Docker VM template that with nerdctl is a drop-in replacement for Docker Desktop. There's also Colima which again seems to be the same as Lima which it's based on.
- woleium 4y agoThe cynical response would be that they all contribute to a different person's promotion document (promodoc in Amazon parlance)
- chucky_z 4y agoLooks like this is for a consistent workflow for developers where managing a VM or learning nerdctl is too much. I say this as truthful and neither sarcastically or maliciously.
- mdaniel 4y agoOffhand, the biggest difference I'm aware of is the "--platform" argument to "finch run"; with colima (and presumably lima under it) one must specify that at vm creation time not per container $ ./_output/bin/finch run --platform amd64 --entrypoint=/usr/bin/env redis:7-alpine uname -m x86_64 $ ./_output/bin/finch run --platform arm64 --entrypoint=/usr/bin/env redis:7-alpine uname -m aarch64 $ uname -m x86_64 $ ./_output/bin/finch images REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE redis 7-alpine 2700d5097763 31 seconds ago linux/amd64 30.8 MiB 11.3 MiB redis 7-alpine 2700d5097763 31 seconds ago linux/arm64/v8 30.5 MiB 11.3 MiB
- notpushkin 4y agoMultiarch works fine for me with colima and Docker CLI: $ limactl shell colima uname -a Linux colima 5.15.68-0-virt #1-Alpine SMP Fri, 16 Sep 2022 06:29:31 +0000 aarch64 Linux $ docker run --rm --platform=linux/arm64 busybox uname -a Linux d9daf296b930 5.15.68-0-virt #1-Alpine SMP Fri, 16 Sep 2022 06:29:31 +0000 aarch64 GNU/Linux $ docker run --rm --platform=linux/amd64 busybox uname -a Linux 34805057ef02 5.15.68-0-virt #1-Alpine SMP Fri, 16 Sep 2022 06:29:31 +0000 x86_64 GNU/Linux Haven't tried with containerd/nerdctl but I think it should work just fine too.
- Yeroc 4y agoThe article notes that Finch is simply curating and/or wrapping Lima etc...
- lioeters 4y agoIt's an abstraction layer above Lima. Looks like they're especially working on ease of use on macOS as the only supported platform for now. > Finch is our response to the complexity of curating and assembling an open source container development tool for macOS initially, followed by Windows and Linux in the future. > We are curating the components, depending directly on Lima and nerdctl, and packaging them together with their dependencies into a simple installer for macOS. Finch, via its macOS-native client, acts as a passthrough to nerdctl which is running in a Lima-managed virtual machine. > All of the moving parts are abstracted away behind the simple and easy-to-use Finch client. Finch manages and installs all required open source components and their dependencies, removing any need for you to manage dependency updates and fixes.
- mfer 4y agoIf you want something a little further along (with nerdctl/containerd or docker/moby) that runs on mac/win/linux... there's Rancher Desktop [1]. The mac and linux setups are built on Lima. One of the Lima maintainers is the lead on Rancher Desktop. It also has Kubernetes (you can turn it off), a GUI, and more. Disclaimer, I started Rancher Desktop so I have a little bit of a bias. [1] https://rancherdesktop.io https://rancherdesktop.io
- mdaniel 4y agoGreat, then can you speak to whether rancher-desktop supports the "--platform" argument to "run" the same way that finch does? I wouldn't mind answering it myself, but it looks like rancher-desktop is an electron something or other: https://github.com/rancher-sandbox/rancher-desktop/blob/v1.6.2/scripts/build.ts#L90 https://github.com/rancher-sandbox/rancher-desktop/blob/v1.6... and even downloading the 500MB release zip shows that there's `Rancher Desktop.app/Contents/Resources/resources/darwin/lima/bin/limactl` hidden in it, but I'm a distrustful sort and I don't want to crawl through unlimited lines of typescript to find out what this is going to do to my system Maybe it's just that I'm not the right audience for this, since I am the polar opposite of "some gui fanciness," as I came up through the docker-machine universe, and now colima, and thus have a lot more comfort debugging CLI tooling when something inevitably goes toes up
- encryptluks2 4y agoA really great container solution is Podman and Linux. If macOS wanted to provide namespaces they could have done so, but to get the native container experience and a truly open source operating system just use Linux.
- heywoodlh 4y ago> If macOS wanted to provide namespaces they could have done so, to get the native container experience and a truly open source operating system just use Linux. I am not too sure why this needed to turn into a dig on MacOS. I think a tool like Finch, Lima, Docker, etc. that further helps Linux be highly portable as a container environment highlights the strength of Linux as a portable runtime on every platform. To flip it around, one could lament how Linux lacks a unified desktop experience compared to MacOS, which makes it even more difficult to use desktop Linux in the enterprise in contrast to Windows and MacOS. Why not celebrate that containerized Linux will be even more accessible to another platform instead of turning this into a dig at another -- more widely used -- desktop OS in the enterprise? Some people/environments just can't or have not yet made the investment into desktop Linux. (I'm a daily desktop NixOS and Arch user)
- encryptluks2 4y agoWouldn't having multiple competing open source window managers be considered a good thing? I'm not sure what you mean by unified desktop experience as well, can you clarify specifically what that means to you? Do you mean like why don't all Linux desktop apps use GTK3 or Qt? Or why don't all Linux desktops use Gnome or KDE? I do celebrate that Docker, Podman, Colima advance container solutions and increase exposure to Linux for server apps. My point being though is that if the point of Finch or Colima is to get a slight increase in performance in an already non-native VM experience then IMO the time would be better utilized either forcing Mac to implement native namespace and kernel-level support for containers or to adopt a native backed for containers. I can't tell you how many times I've seen developers implement poor practices coming from non-native development workstations because to them what does it matter if your container is a bit slower if they already are used to subpar performance and functionality.
- SEJeff 4y agoPodman Desktop has a gui and runs on Windows/macOS/Linux for those that weren't aware. It also doesn't require a commercial license, unlike Docker desktop for enterprises. https://podman-desktop.io https://podman-desktop.io
- lukewiwa 4y agoThis makes some sense to me. I can see this being a loose part of the CDK since there are quite a few constructs that require local Docker builds before being deployed. That's not just containers either, python lambda code is packages using a Docker container and the result spat out as a zip file for instance.