Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a copy of PR #1181, adding it for the release.
[Adding a copy of the description of original PR]
Issue #, if available:
Description of changes
Adds finch-daemon, so that it starts inside the VM and is exposed to processes inside the VM (via /run/finch.sock and /var/run/docker.sock), and processes on the native macOS host (via /path/to/lima/data/finch/sock/finch.sock).
To make this possible, these changes had to be made:
Added finch-daemon specific logic to ./finch.yaml.d/mac.yaml
This logic makes it so that the finch-daemon binary and service file are copied into the VM, and then starts the daemon using systemd
In Makefile.darwin, changed the order so that the finch-daemon specific provisioning script would be the final script, after being merged
Also added a add-daemon-mount target, which makes it so that duplicate mounts are not added to Lima. This is done to avoid the default lima provisioning scripts failing due to trying to mount/unmount a directory twice (the end result is users may see cloud-final.service fail after shelling into the VM. although this should only ever really impact developers, it was easy enough to fix)
Added [email protected]
This change also currently relies on a fork of finch-core, which actually has the code necessary for building finch-daemon. Once runfinch/finch-core#424 is merged, I'll update this PR to remove the use of a different finch-core upstream.
Testing done
finch-daemon works as expected on macOS:
DOCKER_HOST=unix:///path/to/finch/_output/lima/data/finch/sock/finch.sock docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
public.ecr.aws/amazonlinux/amazonlinux 2023 75763d26a280 3 weeks ago 51.4MB
public.ecr.aws/docker/library/registry latest 12120425f07d 2 months ago 9.47MB
public.ecr.aws/lambda/nodejs 18-x86_64 97f94536a3af 3 weeks ago 180MB
I've reviewed the guidance in CONTRIBUTING.md
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.