Blog

BuildKit as default builder in Docker

Recently, when I was launching Docker, I encountered an error:

ERROR: BuildKit is enabled but the buildx component is missing or broken. Install the buildx component to build images with BuildKit: https://docs.docker.com/go/buildx/

BuildKit documentation says that mentioned builder has been set as default in Docker since version 23.0 and Ubuntu 22.04 got update to version 24.0 which can be confirmed in list of packets. as well as by apt list:

$ apt list | grep docker.io docker.io/jammy-updates,now 24.0.5-0ubuntu1~22.04.1 amd64 [installed]

In this situation, workaround DOCKER_BUILDKIT=0 can be used to switch Docker’s builder to legacy mode.

$ DOCKER_BUILDKIT=0 docker build -f Dockerfile.base --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t zephyr-build:v3.5.0 .

If you prefer to use the latest builder version, which is advised, one package from apt is needed:

  1. We are looking for the missing package

    $ apt list | grep buildx docker-buildx/jammy-updates 0.11.2-0ubuntu1~22.04.1 amd64

  2. Setting buildx as default builder plugin

    $ docker buildx install

All set! One difference is, that --load should be added to the building command to save Docker image locally.

$ docker build -f Dockerfile --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t zephyr-build:v3.5.0 --load .

J-Pole antenna 149MHz (State Fire Service of Poland + HEMS) with a mast decoupling stub

J-Pole antenna designed in 4nec2 for 149MHz (State Fire Service of Poland + HEMS).

Link to NEC file on GitHub: 149mhz_jpole.nec

Screenshots from 4nec2 screenshot_jpole_149mhz_nec_1 screenshot_jpole_149mhz_nec_2 screenshot_jpole_149mhz_nec_3 screenshot_jpole_149mhz_nec_4