Boxit is a distributed container image builder that can dynamically produce container images from a set of dependencies given as input.
Supported platforms are currently:
- jvm
Source code can be compiled with Go 1.14, using the command:
makeThis will produce two binaries:
boxit-server: the server part of the distributed builderboxit: the client part
Boxit needs a registry to host the produced images.
You can either run a local registry or use an existing one (e.g. docker hub).
To run a local registry using docker, you can run:
docker run -d -p "5000:5000" --name "registry" registry:2The server can be simply executed via:
./boxit-serverIt runs on port 8080 and points by default to the registry on localhost:5000 (insecure).
If you want to use a different registry, make sure you're logged in:
docker login docker.io
# follow instructionsThen start the server with:
./boxit-server --registry docker.io/yourid --insecure=falseThe boxit client can be now used to ask the server to create new images (uses server on http://localhost:8080 by default):
./boxit create -d mvn:org.apache.camel:camel-core:3.5.0./boxit create -d mvn:org.apache.camel:camel-core:3.5.0 -d mvn:org.apache.camel:camel-timer:3.5.0A possible output may be: localhost:5000/boxit/vb7uwws6n2mwbc3h6fbctwuhkmmmh2cl6a2v45r5g23rbcsndcuha:latest.
A new image will be created if not already present. The ID of the image containing the dependencies is always printed.
The first time the command is executed, it will take several seconds to have an image ready. Once the image is build, subsequent calls will be completed immediately.