-
Notifications
You must be signed in to change notification settings - Fork 7
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
Builder Design #6
Comments
I am going to detail here all the images with dependencies, so we define a standard way to name them and also the meaning of each one. I am going to do this in Python. First of all, we have the base image which is Then we have the
Those images inherit one from each other, and we have the last two repeated for each language (they are independent between languages). Another kind of images, which are independent to the compilation of metacall/core itself are the Those images will be used as intermediate images in order to build the final image of the end user. They will execute Once we have all those images, we need the runtime images. Runtime images are for executing code based on metacall and they are based on
The 2) point can be taken from this operation: The dev images are not really important for the end user, maybe we can find some use case for metacall/core development but in my opinion we can leave them for now... for development we can use the tools in metacall/core and compile it with multiple languages at once. I am trying to write the build phase in docker syntax but it is not possible due to the limitations, maybe I can draw some graph instead. But basically we must have runtime images with only the dependencies for runtime, i.e a |
This design looks good to me, however I have few questions :
|
Buildkit in deamonless+rootless mode (for testing): docker run \
-it \
--rm \
--security-opt seccomp=unconfined \
--security-opt apparmor=unconfined \
-e BUILDKITD_FLAGS=--oci-worker-no-process-sandbox \
-v /path/to/dir:/tmp/work \
--entrypoint buildctl-daemonless.sh \
moby/buildkit:master-rootless \
build \
--frontend \
dockerfile.v0 \
--local context=/tmp/work \
--local dockerfile=/tmp/work |
Check out how Moby creates his images: https://github.com/moby/buildkit/blob/354e4f6e6b2008a6690b1675279e6bd2e445d492/Dockerfile#L86 |
Brief Documentation of Builder Design :The base image is debian-slim. (You can specify the base image using the --image flag) Here py is an example for python, you can pass multiple args to builder py c etc. as languages for building required image. Deps images :
Dev image :
Taking So, to form the final runtime image containing the python loaders as well as the python runtime. |
@ashpect it would be interesting if you can document this, and we convert this issue into documentation so people can understand how it works internally. Once that's done, we can close this. |
Here we are going to define the design of builder
Goals:
The text was updated successfully, but these errors were encountered: