dlang-dockerized: Summer 2026 Status Update

Mindy Batek (0xEAB) desisma at heidel.beer
Tue Jul 28 01:38:08 UTC 2026


Hi,

It’s been a while since the last time I wrote about the 
dlang-dockerized project on the newsgroup. Given that a few 
notable changes have happened (or are planned to be made happen — 
depending on the angle you look at it), I felt justified to 
provide an update.

### The “Trixie” update

I’ve finally been able to allocate a bit of time to work towards 
upgrading the Containerfiles (or “packaging scripts”) to work 
with Debian 13 “Trixie”. I’m quite late, I have to admit, but 
truth to be told, it does not really matter. If anything, an 
older base-image provides broader compatibility. Anyway, I’ve 
tested things and reached a point where I’m confident that things 
work the way they should.

My current plan is to rebuild the “Bookworm” images of 
dlang-dockerized with the latest base images and push them to the 
registries — ghcr.io and docker.io — by the end of the month.

Then in August, I’ll finally publish “Trixie”-based images.

### Sustainability

If there’s been one thing that the project was lacking since the 
begining, then that has probably was sustainability.

My original goal was so overambitious that reality quickly made 
me give in. While I started out with the idea to package all 
compiler versions since the switch of C++ to D, compatibility 
issues (especially at link time) and numerous breaking changes to 
the build process brought me back down to earth quickly.

While the reduced number of supported compiler versions — and a 
much smaller selection of actually published images — I still had 
a large number of different configurations to maintain, test and 
build.

A recent change, something that I had been planning to do for 
quite a while now, — namely to also build LLD (LLVM-based linker) 
as well as LLDB (LLVM-based debugger) — I quickly ran into 
further challenges stemming from the large combination of 
different software versions. As much as I regret pruning the list 
of “supported” versions, I have to admit that I never really had 
the time to bother about maintaining things properly and 
thoroughly.

As I set out to make amends for that, it became clear that I had 
to reduce the maintenance coverage quite a bit.

Nevertheless, these changes also allow me to publish an actual 
maintenance policy for users to count on. At least to the extent 
outlined in that policy — after all, I’m still a single volunteer 
taking care of those tasks in my spare time.

<https://github.com/dlang-dockerized/packaging/blob/c5f45a320992715acff5507638f7535225f5981d/MAINTENANCE.md>

In addition to the reduction in required maintenance afford, the 
new policy also brings down the compute cost for building 
container images to publish. The gentle reader might already be 
aware, but compute resources are kinda expensive these days due 
to steeply rising hardware prices.

#### Sunset of the “Bookworm” branch

There’s another victim of this new policy change. And one that 
may actually hurt a bit. In order to keep the maintenance 
overhead low, all upcoming changes are only applied to the new 
“Trixie” branch and won’t be backported to the “Bookworm” one.

Hence maintenance of the “Bookworm” branch is ending by end of 
the month. But don’t worry, the published bookworm-based images 
will stay available as-is. And users can just write a 
Containerfile that uses a legacy image for building and copies 
over the resulting binaries into an up-to-date Bookworm image. 
Additionally, the legacy Containerfiles can still be found in the 
Git repository and be built by users on their own.

However, I’m looking forward to maintaining the “Trixie” branch 
for quite a bit longer than the “Bookworm” one. Whether or not 
there will be corners to cut in the future… Who knows? I’ll 
attempt to maintain this branch as long as reasonable — which 
will hopefully be as long as the LTS period of the OS.

#### Alternative base-images

It follows herefrom that dlang-dockerized no longer plans to 
support Alpine/musl as base-image. Neither are there any plans to 
support the Enterprise Linux family of distros. Support for 
xtensa’s fork of LLVM is discontinued. (Never published any built 
images with that anyway.)

Special thanks to my fellow packagers who take care of 
maintaining different kinds of container images. Given the 
aforementioned scope reduction of dlang-dockerized, I find these 
options in particular noteworthy to mention:

- Alpine images by Matheus: 
<https://github.com/kassane/alpine-ldc2-docker>
- Xtensa stuff by Jonas: <https://github.com/jnms-me/packaging>

For the time being, dlang-dockerized’s support is limited to 
Debian derivatives — and even that on a non-committal basis with 
no promises. (If someone needs commercial-grade support, I’m 
confident they’ll know how to arrange that.)

I’m pretty sure that recent changes to the build process — in 
particular the admission of LLD and LLDB to the build process — 
will require further adaptions for “Ubuntu”-based images. I plan 
to look into that, but there’s no ETA. While Ubuntu is not 
covered in accordance to the maintenance policy, it is one of the 
most prominent Debian derivatives and as such I may consider it 
worthy from time to time to fix compatibility issues should they 
arise.

Nevertheless, my general recommendation is to use the 
Debian-based images for building then copy the resulting binaries 
into a another one. Such multi-stage builds are a well-supported 
practice.
There’s no need to ship a compiler with your application ;)

### Visibility

It has been pointed out by community members that searching for 
D, DMD, LDC or dlang on Docker Hub brings up not a single image 
with a “trusted content” badge (i.e. “Docker Official Image”, 
“Verified Publisher” or “Sponsored OSS”).

While the first category is a bit inaccessible due to their 
policies

> We expect and require a commitment to maintain your image 
> (including and especially timely updates as appropriate, as 
> noted above).

… the second one could work if a commercial entity were to step 
up. Last but not least, our most realistic option would be to 
apply for “Sponsored OSS”.

Most importantly, that would lift the ratelimits free users on 
Docker Hub are subject to.

#### We have container images at home!

The official downloads page on dlang.org currently links an 
unmaintained and outdated compiler image.

While I cannot restore the love for D its maintainer had in the 
past before getting fed up with lead maintainer decisions, I can 
restore Docker-support by proposing to replace that link with 
dlang-dockerized.
See: <https://github.com/dlang/dlang.org/pull/4455>

Best regards,
Mindy


More information about the Digitalmars-d-announce mailing list