Prerequisites
- Docker (with BuildKit support)
- Bash 4+
make(optional, for build shortcuts)
Project Structure
Development Commands
Testing Locally
You can test builds locally without pushing to a remote registry:When
OUTPUT_IMAGE does not contain a registry prefix (e.g., my-app:local vs registry.io/my-app:latest), the builder uses the local Docker daemon and the image is not pushed.Debugging Tips
- Check the generated Dockerfile in the build output (
Dockerfile.runtime) - Inspect the built image:
docker run --rm my-app:local ls -la /app/ - Check environment:
docker run --rm my-app:local env
Example Apps
Working examples for all supported languages are inexamples/:
Adding a New Language
To add support for a new language:- Add a detection function in
bin/detect - Add a version detection function in
bin/detect-version - Create a
lib/{language}.shwith{language}_get_images(),{language}_generate_builder(), and{language}_generate_runtime()functions - Wire the new language into
bin/build - Add an example app in
examples/ - Add tests in
test/