8ca5611942
Currently, the container name and release are only validated if they were specified as command line options. Neither the value of release in the configuration file nor the container name generated from an image are validated. There's also a lot of repeated code in the command front-ends to validate the container name and release. This opens the door for mistakes. Any adjustment to the code must be repeated elsewhere, and there are subtle interactions and overlaps between the validation code and the code to resolve container and image names. It's worth noting that the container and image name resolution happens for both the command line and configuration file options, and generates the container name from the image when necessary. Therefore, validating everything while resolving cleans up the command front-ends and increases the coverage of the validation. This introduces the use of sentinel error values and custom error implementations to identify the different errors that can occur while resolving the container and images, so that they can be appropriately shown to the user. https://github.com/containers/toolbox/pull/1101 |
||
---|---|---|
.github | ||
completion | ||
data | ||
doc | ||
images | ||
playbooks | ||
profile.d | ||
src | ||
test/system | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.zuul.yaml | ||
CODE-OF-CONDUCT.md | ||
CONTRIBUTING.md | ||
COPYING | ||
gen-docs-list | ||
GOALS.md | ||
meson.build | ||
meson_options.txt | ||
meson_post_install.py | ||
NEWS | ||
README.md | ||
SECURITY.md | ||
toolbox |
Toolbox is a tool for Linux operating systems, which allows the use of containerized command line environments. It is built on top of Podman and other standard container technologies from OCI.
This is particularly useful on OSTree based operating systems like Fedora CoreOS and Silverblue. The intention of these systems is to discourage installation of software on the host, and instead install software as (or in) containers — they mostly don't even have package managers like DNF or YUM. This makes it difficult to set up a development environment or install tools for debugging in the usual way.
Toolbox solves this problem by providing a fully mutable container within
which one can install their favourite development and debugging tools, editors
and SDKs. For example, it's possible to do yum install ansible
without
affecting the base operating system.
However, this tool doesn't require using an OSTree based system. It works equally well on Fedora Workstation and Server, and that's a useful way to incrementally adopt containerization.
The toolbox environment is based on an OCI
image. On Fedora this is the fedora-toolbox
image. This image is used to
create a toolbox container that seamlessly integrates with the rest of the
operating system by providing access to the user's home directory, the Wayland
and X11 sockets, networking (including Avahi), removable devices (like USB
sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and the udev
database, etc..
Installation & Use
See our guides on installing & getting started with Toolbox and Linux distro support.