How do you manage your toolbox container?

Hi all,

I am using Silverblue for a good month now and I end up using toolbox for 90% of the time. That leads me in installing a lot of packages in the toolbox with F31 coming soon I was wondering how I will move to the F31 toolbox container.

How are people managing their toolbox ? Also do your run dnf update inside your toolbox ?


I’m still working most of the time in Silverblue command line. I layered a few packages to be able to work on the projects I’m working with on daily basis, but when doing something new I’m always switching to toolbox and first command I run inside toolbox is dnf upgrade.

I use Silverblue on my laptop and have my main dev environment in a toolbox container. Thankfully, it gives me everything I need to work on Cockpit — including running VSCode from inside the toolbox and even running test VMs inside the container too!

Another person on the team is also using an rpm-ostree system with his custom tree (bootstrapped from Silverblue) and we made a script together to set up our dev environments.

His script is a little different from mine, but much of it is the same.

Here’s my script:

More details about my experience using Silverblue to develop Cockpit: Is Cockpit supported?

Hopefully the little script I linked above might prove as inspiration. The gist of it is that we create a container with toolbox and tell it to install some packages.

You can have a simple script that you update as you go along. If you install a package inside the toolbox container, just add that to the list of packages your script would install. Then it should be reproducible. (You can test it by using another container name… or be brave and wipe out & reinstall your main container.)

1 Like

I’ve been messing around with Silverblue on my home machine. I’m getting new machines at work soon and I wanted everything to be identical, so I’ve been configuring toolbox containers with ansible. I’ve got a couple of bootstrap scripts to get things sorted with rpm-ostree, basically installing cinnamon desktop and ffmpeg so I can get video runinng in Firefox, then another script to initialize a couple of toolbox containers, one to act as the ansible control server, while the other is configured as a user environment. The playbook for the control toolbox uses for the host and runs ansible over ssh, installing flatpaks on my laptop and spinning up a couple of pods from podman to run local copies of nexus and jenkins. The playbook for the user toolbox runs ansible over the local connection and installs packages with dnf in the user environment.

I just got the basic structure worked out this past weekend. It’s still a little rough so unfortunately I don’t have anything to show at the moment, but if you’re interested I can clean it up a bit and post a working copy. I should be able to get to it next weekend.