Toolbox 2: git-plus

If you work with a lot of Git repositories on a regular basis, you’re bound to run into the situation where you need to make changes to multiple repositories sooner or later. While it would be possible to run your Git commands in a shell loop over everything repositories, it is often tedious to type the command or remember the correct syntax.

Read full post gblog_arrow_right

Toolbox 1: direnv

We all use many different tools every day e.g. for our work, automation or better productivity. In the series “Toolbox” I would like to present such applications that have made my day-to-day work so much easier. All applications are free and open source software developed by big tech companies as well as lovingly handcrafted hobby projects. If you also know an awesome tool that has changed your life, I would love to hear from you on Mastodon.

Read full post gblog_arrow_right

Run an ARM32 Docker daemon on ARM64 servers

In the last days I worked on a suitable setup for a Drone CI server to support multi-arch builds. While the setup for common x86 Drone runners is easy, working with setups for ARM, especially ARM32, is a bit tricky. The easiest way would be to have native servers of the respective architecture available. However, it’s difficult to find hosting offers for ARM at all - for ARM32 this seems almost impossible. I decided to use Amazon EC2 ARM64 servers, they are relatively cheap and can also be used as a private customer.

Read full post gblog_arrow_right

Docker port publishing for localhost bindings

While preparing a custom Docker image for a tool I wanted to use I encountered a problem that kept me busy for some time. The container could be built and started without any problems but the application in the container was simply not accessible via the published port.

Even after minutes of debugging and checking (and re-checking over and over again) that the right port was exposed and the application in the container is listening on that port I was not able to get it to work… But I had a suspicion now. For some reason I had decided to bind the application in the container to localhost. Though it may sound obvious now, I didn’t expect that with a binding like 127.0.0.0:9000 you can’t publish port 9000 to the host; or maybe I’m just too stupid to fully understand Docker networking. After I changed the binding to 0.0.0.0:9000 everything worked as expected. Anyway, lesson learned.

Read full post gblog_arrow_right

Ansible and the relations to the inventory

I love Ansible and I’m pretty happy to have this configuration management solution. But some little “features” drive me crazy sometimes. My task for today was to switch from a static Ansible inventory file to multiple dynamic inventory script. In general this, should be really straight forward. Create an inventory folder and add some small Python scripts to create Ansible readable inventories from different providers.

Read full post gblog_arrow_right