-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: rootfs - build/upload action and Dockerfile #125
Conversation
bf05eef
to
3079cc4
Compare
GitHub secrets are not evaluated on PRs from forks (so as not to allow for bad actors to expose secrets). I've updated the PR to be ready for review, but it the action won't run until merge. |
3079cc4
to
4ac8cee
Compare
4ac8cee
to
9c08963
Compare
In order to facilitate Finch on Windows, we need a root filesystem. We will use this Dockerfile as a basis for that root filesystem - using `docker export` to turn a built container into an archived rootfs. For the scope of these changes, create the Dockerfile and an action that runs on changes to the file to build and push to ECR repo. In order to create the container used as an intermediate step to export its rootfs, we need to tell buildkit to load the image into Docker. This exposes a limitation of buildkit to load multiplatform images, thus why the action runs two build-rootfs-image jobs - one for each arch. Additionally, network performance of the arm64 build is quite slow - downloads of packages via dnf are on the scale of kb/s (but this has not been observed on Ubuntu or Alpine images) Signed-off-by: Gavin Inglis <[email protected]>
9c08963
to
5360963
Compare
CI failing for known reason described in runfinch/finch#461 (comment) |
Missing auth in https://github.com/runfinch/finch-core/actions/runs/5684511073/job/15407368457:
Need to |
Issue #, if available:
runfinch/finch#492
Description of changes:
In order to facilitate Finch on Windows, we need a root filesystem. We will use this Dockerfile as a basis for that root filesystem - using
docker export
to turn a built container into an archived rootfs. For the scope of these changes, create the Dockerfile and an action that runs on changes to the file to build and push to ECR repo.The Dockerfile will be used to create a container such that we can export that container's fs as a tarball and compress it for use with WSL2. For now, we are including cloud-init (at least for the WSL2 rootfs) but need further investigation to determine if we can remove the package to further slim the rootfs..
In order to create the container used as an intermediate step to export
its rootfs, we need to tell buildkit to load the image into Docker. See
This exposes a limitation of buildkit to load multiplatform images:
buildx failed with: ERROR: docker exporter does not currently support exporting manifest lists
thus why the action runs two build-rootfs-image jobs - one for each arch.
See docker/buildx#59 and docker/roadmap#371
Additionally, network performance of the arm64 build is quite slow -
downloads of packages via dnf are on the scale of kb/s (but this has not
been observed on Ubuntu or Alpine images)
Testing done:
Local copy in a private repo,
act
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.