/dedock

not a container runtime.

Primary LanguageRustApache License 2.0Apache-2.0

dedock

NOTICE: dedock is highly experimental and should not be used in production environments. Expect rapid iteration and breaking changes.

dedock is a container runtime, with a particular focus on enabling embedded software development across all platforms. It supports native "containers" on both Linux and macOS.

How It Works

dedock is not a container runtime in that it does not provide meaningful isolation from a security perspective and is not compliant with the OCI Runtime Specification. The primary purpose of dedock is to enable the distribution of portable development environments. It does so by partially adopting OCI images to distribute filesystem bundles with tooling and dependencies pre-installed.

dedock uses chroot(1) on Linux and macOS to isolate the filesystem of the "containers" it runs. Because no other isolation is employed, executables in the filesystem run natively on the host machine, meaning that there is no virtualization layer, even when running on macOS. As such, separate images must be built for macOS (Darwin) and Linux.

Status

dedock is very much in the technical demo stage and should not be relied upon for critical operations. The initial motivation for the project was to allow for developers to build, flash, and debug software on embedded devices attached to a host machine. As such, there are a number of defaults that would not make sense for general usage, including always running with stdout / stdin / stdout attached to a pseudoterminal and always mounting /dev.

The future of the project is very much dependant on feedback from community members, but the following goals are presently in scope for dedock:

  • Providing more options for configuration.
  • Supporting rootless containers.
  • Running on Windows.
  • Maintaining a set of useful base images.
  • Offering image build tooling.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.