-
Notifications
You must be signed in to change notification settings - Fork 8
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
Add cruntime package #12
Conversation
🦋 Changeset detectedLatest commit: 7fc8c0a The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
4337c8e
to
eeb9b62
Compare
chiselled cruntime rootfs based on ubuntu:24.04
# | ||
FROM ${IMAGE_REGISTRY}/${IMAGE_NAMESPACE}/${IMAGE_NAME}:$IMAGE_TAG AS base-image | ||
ARG DEBIAN_FRONTEND=noninteractive | ||
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ideally this image should be reproducible right? so it's safer to lock the ca-certificates version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only use this so it's possible to download packages with chisel later.
On the reproducibility side, chisel itself doesn't support defining specific versions of packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll add the ca-certificates version anyway.
base-passwd_data \ | ||
# machine-emulator-tools dependencies | ||
busybox-static_bins \ | ||
libgcc-s1_libs \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this explicitly required, or should come by transitive dependency?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The installation of mahine-emulator-tools is made outside the chisel process, so we need to do this way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But doesn't the debian installation of the tools bring what is needed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not installing, but just extracting its contents.
If I install it, it's gonna pollute the /rootfs
that should be minimal.
This will make it possible for Cartesi application developer to create their application Dockerfile without the need to install machine-emulator-tools and its dependencies but just the application code itself.
For ex., the following
Dockerfile
could be used for a javascript application:How to test:
With that, you can build an application with the sample Dockerfile above using
You could also try running with
cartesi-dev --no-backend
and running the application container with docker:Details:
We used
chisel
to make a small runtime image withcrun
and its dependencies.We compiled
crun
ourselves to use the latestcrun
version and remove what we don't need.References: