Open endersonmaia opened 6 months ago
Just reporting my findings during a couple days of evaluating options to create this minimal runtime.
If we were going to build our own minimal image without having to bootstrap the riscv64 build, I'd go with Docker Hub riscv64/ubuntu:22.04 and use chisel + copy some libs.
Contribution upstream would be creating the chisel slices for the components we need.
So, that's where I'm heading.
We have Ubuntu 24.04 as the next LTS release, but we don't have riscv64/ubuntu images for that yet.
Links to keep track:
π Context
There's this idea of abstracting away the need to install the machine-emulator-tools and require the application developer to define some variables or wrap a call to the application execution with
rollup-init
.This could all be done in the background, and application developers should only care about building a container that can run their applications, like they already do on other cloud runtime environments.
That's a responsibility of the runtime to adapt that container image to run on its environment.
βοΈ Solution
sunodo build
should prepare a common-runtime container image, with the rightmachine-emulator-tools
installed and propercartesi-init
so that the application developer can provide only the Dockerfile for their application.sunodo build
would then create arootfs
for the application and inject it into thecommon-runtime
rootfs and usecrun
to start the processENTRYPOINT
+CMD
.π Subtasks
sunodo build
to use the common-runtime strategyπ― Definition of Done