containerd / containerd/nerdctl
Integrate `dib` as a Subcommand in nerdctl
- Dominant language
- Go
- Stars
- 10.4k
- Forks
- 826
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 44
Description
### What is the problem you're trying to solve
Building oci images that depend on each other is a pain. Right now in nerdctl, you have to manually figure out which images to build first and rebuild everything when something changes. It's time-consuming and error-prone, especially with lots of images.
### Describe the solution you'd like
I'd like to propose integrating [dib (DAG Image Builder)](https://github.com/radiofrance/dib) as a subcommand in nerdctl. This would bring powerful image dependency management capabilities to nerdctl users.
The official dib documentation is available at: [https://radiofrance.github.io/dib](https://radiofrance.github.io/dib)
## Background
dib is a tool that builds oci images using a dependency graph (DAG) approach. It solves the problem of managing complex image relationships by automatically determining the correct build order based on image dependencies.
## Benefits
- **Dependency Management**: Build images in the correct order based on their dependencies
- **Parallel Building**: Build multiple images in parallel while respecting dependencies
- **Testing Integration**: Built-in support for testing images with goss
- **Security Scanning**: Vulnerability scanning with trivy
- **Comprehensive Reports**: Generate detailed build reports
## Proposed Implementation
Add a new subcommand `nerdctl dib` that would expose the core functionality of dib:
```
nerdctl dib build [options]
nerdctl dib graph [options]
```
This would allow users to:
1. Build images with dependency management
2. Visualize the image dependency graph
3. Leverage existing nerdctl infrastructure for registry access and authentication
## Use Cases
- Building complex microservice architectures with many interdependent images
- CI/CD pipelines that need to efficiently rebuild only changed images
- Projects that need to maintain consistent image versioning across dependencies
## Alternatives Considered
Users can currently use dib as a standalone tool, but integrating it directly into nerdctl would provide a more seamless experience and leverage nerdctl's existing capabilities.
### Additional context
dib is already being used in production environments and has proven to be reliable for managing complex image dependencies.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.