cd dalec-docker-extension
make build-extension
# or
docker buildx build -t dalec-extension:latest . --loadmake install-extension
# or
docker extension install dalec-extension:latest -f- Open Docker Desktop
- Click on "Dalec" in the left sidebar
- You should see the Dalec Minimal Image Builder interface
Simple Example: Bash-only Image
- Image Name:
my-first-minimal:v1 - OS Target:
azlinux3(default) - Packages: Check ☑️
bashonly - Click "Create Image"
Watch the logs stream in real-time! When complete, you'll see a green success banner.
Click the "🚀 Run Image" button, or test manually:
# Verify image exists
docker images | grep my-first-minimal
# Run it interactively
docker run -it my-first-minimal:v1 /bin/bash
# Inside the container
echo "Hello from Dalec!"
exit
# Clean up
docker rmi my-first-minimal:v1Image Name: web-base:minimal
OS Target: azlinux3
Packages: ☑️ curl, ☑️ bash
Result: ~50MB image with curl + bash + dependencies
Image Name: ultra-minimal:v1
OS Target: azlinux3
Packages: ☑️ bash
Result: Smallest possible image with just bash
Image Name: dev-tools:v1
OS Target: azlinux3
Packages: ☑️ curl, ☑️ bash (add more as available)
Result: Development-ready minimal image
The "Command Preview" section shows the exact docker build command being executed. Copy it to run builds from CLI:
# Example command (generated by extension)
docker build -t my-image:v1 \
--build-arg BUILDKIT_SYNTAX=ghcr.io/project-dalec/dalec/frontend:latest \
--target=azlinux3/container/depsonly \
-<<<"$(jq -c '.dependencies.runtime = {\"curl\":{},\"bash\":{}} | .image.entrypoint = \"/bin/bash\"' <<<"{}" )"During long builds, uncheck "Auto-scroll" to examine specific log lines. Re-check to jump back to the latest output.
Click "Clear Logs" before starting a new build for a fresh view.
After a successful build, use the "📋 Copy Image Name" button to quickly get the exact image name for CLI commands.
Click "🔍 Inspect" to see image size and metadata before running it.
cd ui
npm install
npm run dev
# In another terminal:
docker extension dev ui-source dalec-extension:latest http://localhost:3000Now edit ui/src/App.jsx and see changes instantly!
cd backend
npm install
npm start
# Backend runs on port 8080docker extension dev debug dalec-extension:latestClick the extension tab to open Chrome DevTools.
Solution: Start Docker Desktop
Solution: Check if BuildKit is enabled:
docker buildx lsSolution: Restart Docker Desktop after installation
Solution: Ensure Docker has necessary permissions:
docker ps # Should work without sudoSolution: First build pulls Dalec frontend image (can take 2-5 min). Subsequent builds are faster.
When you click "Create Image":
- Backend receives your configuration
- Generates a Dalec spec inline (JSON with runtime dependencies)
- Spawns
docker buildwith Dalec BuildKit frontend - Dalec analyzes package dependencies
- Creates minimal rootfs with only required files
- Builds optimized container image
- Streams all output back to UI in real-time
- Saves image to local Docker registry
The result: Minimal images with only what you selected + their dependencies!
- Read ARCHITECTURE.md for technical details
- Check ENHANCEMENTS.md for feature list
- Follow TESTING.md for comprehensive testing
- Explore Dalec documentation for advanced usage
- Compare Sizes: Build two images with different package sets and compare sizes
- Custom Naming: Use meaningful tags like
my-app:base-v1.0.0 - Build Templates: Keep notes of successful configurations for reuse
- Registry Push: (Coming soon) Push to your registry after building
- Multi-Stage: (Coming soon) Use built images as base for app images
- Check logs in the extension for errors
- Verify Docker Desktop is running
- Ensure BuildKit is enabled
- Review the command preview for syntax issues
- Look for error messages (highlighted in red) in logs
Happy building! 🎉