I Built ubunπŸ”¨ools, So You Don’t Have To



This content originally appeared on DEV Community and was authored by Viorel PETCU

Not sure how often this happens to others, but whenever I start a new project, I like to start with a blank slate. I do this to avoid unconsciously dragging in tools or methods from other projects that might not fit into the current tech stack.

So, typically, I check out the project and mount the directory into a fresh Ubuntu container like this:

git clone https://github.com/realvorl/ubuntools.git
cd ubuntools
docker run -it --rm -v $(pwd):/work --workdir /work ubuntu:24.04 /bin/bash

All set, right? Well, not quite. Let’s say I want to check the weather quickly:

root@20fb3c8cf2eb:/work# curl wttr.in
bash: curl: command not found # <--- and this is what I am talking about
root@20fb3c8cf2eb:/work# 

I don’t always check the weather, but you get the point. I’ve already set everything up, but now I’m in a container where tools like curl, wget, jq, or even a simple editor like nano are missing. And if the container crashes, whatever I install now is gone. Frustrating, right?

The Solution: UbunπŸ”¨ools

So, I built ubunToolsβ€”a lightweight Docker image generator that packages the tools I need in these situations. No more fumbling with missing dependencies or reinstalling them every time. With ubunTools, you pull the image, and boomβ€”you’re ready to go.

Let me show you how this works:

1 add your list of tools to the workflow input form:

github workflow input form

2 put that list into an ENV variable:

adding tool list to env variables

adding tag to env variables

3 build the parameterized image:

parameterized docker build

4 push to docker hub:

using docker action to upload image

Here’s the same workflow, but this time using an image generated by ubunTools:

# Swapping ubuntu:24.04 with viorelpe/ubuntools:useful_REST_tools
docker run -it --rm -v $(pwd):/work --workdir /work viorelpe/ubuntools:useful_REST_tools /bin/bash

root@0325311145e2:/work# curl wttr.in
Weather report: 

      \   /     Clear 
       .-.      11 Β°C          
    ― (   ) ―   ↑ 6 km/h       
       `-’      10 km          
      /   \     0.0 mm          ...
                                ...
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ ...
β”‚            Morning            ...
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ ...
β”‚    \  /       Partly Cloudy   ...
β”‚  _ /"".-.     +22(21) Β°C      ...
β”‚    \_(   ).   ↖ 5 km/h        ...
β”‚    /(___(__)  10 km           ...
β”‚               0.0 mm | 0%     ...
└────────────────────────────── ...

Easy, right? Now, I’m good to go with all the tools I need.

Principle 1: Adding More Tools Shouldn’t Be Hard

One of my favorite things about ubunTools is how simple it is to expand. Need a new tool for a specific project? No problem! Just name it in the GitHub workflow inputs, trigger it, and the image will automatically update with the new tool(s). Minimal effort, maximum flexibility. It’s like a toolkit that grows with you as your needs evolve.

Principle 2: Keeping It Secure and Up-to-Date

Security matters, especially when dealing with Docker images. That’s why ubunTools includes a mechanism that keeps it in sync with the latest Ubuntu image. If the Ubuntu image changes (like when there’s a security fix), ubunTools rebuilds the image (at midnight) and pushes it to Docker Hub under the appropriate tag – overriding the previous one. You don’t have to worry about manual updatesβ€”it keeps everything secure and fresh.

Conclusion: A Toolkit That Works for You

UbunπŸ”¨ools started as a personal solution to a common onboarding headache, and it’s already grown beyond what I imagined. Whether you’re probing APIs, aggregating data, or just needing a basic toolkit, ubunTools has you coveredβ€”and it’s easy to build on.

Check out ubunTools on GitHub πŸš€. Don’t want to deal with creating your own Docker Hub account? No worries! Just create an issue on GitHub, and I’ll build the image for you. It’s just a few text fields and a clickβ€”no biggie.

Final Thoughts

I wanted to make my life easier, and now, with ubunTools, I hope it makes yours easier too. Whether you’re a developer who likes starting projects with a clean slate, or you just need a reliable, customizable toolkit, ubunTools is there for you. Let me know if you give it a spin!

badge


This content originally appeared on DEV Community and was authored by Viorel PETCU