Mert Özen Further With Every Line

Blog

Mert Özen's blog posts on software development, backend, frontend, and DevOps.

Series
3 posts found #buildkit
Reading Old Docker Setups and Moving Them to 2026: Legacy Builder to BuildKit, Port 80 to 8080, Debian to Ubuntu, Graph Drivers to containerd
DevOps PART 15

Reading Old Docker Setups and Moving Them to 2026: Legacy Builder to BuildKit, Port 80 to 8080, Debian to Ubuntu, Graph Drivers to containerd

Moving an old Dockerfile to 2026 means reading several separate changes together: BuildKit instead of the legacy builder, labels and exec form instead of MAINTAINER and shell form, the move from port 80 to 8080 and from root to the app user in .NET 8, from Debian to Ubuntu in .NET 10, and Engine 29's containerd image store and API version. With real output we modernize Bookstore's hypothetical 2021 Dockerfile line by line and try the .NET 11 SDK's local runtime selection and SOURCE_DATE_EPOCH.

14 Nov 2026 12 min 15
Build Cache and BuildKit: Layer Order, Cache Mounts, Build Secrets and Bake
DevOps PART 06

Build Cache and BuildKit: Layer Order, Cache Mounts, Build Secrets and Bake

The build cache does not rerun a step unless its inputs change; for COPY the input is file content, so copying the csproj first and separating restore from source code keeps a code change from downloading packages again. On Bookstore.Tools we cut the build from 4.6 s to 1.6 s, measure a NuGet cache mount, pass a private feed token with a secret mount without leaking it, and look at multi-platform builds with QEMU and docker buildx bake.

14 Nov 2026 15 min 12
Dockerfile Basics: FROM, RUN, COPY, WORKDIR, ENV, ARG, USER, EXPOSE, CMD and ENTRYPOINT
DevOps PART 05

Dockerfile Basics: FROM, RUN, COPY, WORKDIR, ENV, ARG, USER, EXPOSE, CMD and ENTRYPOINT

In a Dockerfile, RUN, COPY, ADD and WORKDIR touch the file system and produce layers; ENV, ARG, USER, EXPOSE, CMD and ENTRYPOINT are only written to the image config. We write the first Dockerfile for Bookstore.Tools, catch the draft's mistakes with docker build --check, and see with real output how ENTRYPOINT and CMD combine, how a token passed as ARG shows up in docker history, what .dockerignore changes, why EXPOSE opens no port, and the apt-get cache trap.

14 Nov 2026 13 min 11
Blog Map