openwrt in docker -> Das geht?

Ja. Das geht. Sogar ziemlich gut!

Was benötigt wird, ist einfach ein rootfs.tar.gz von openwrt. Aktuell sind die für x86/amd64 und arm verfügbar. Ab Version 23.5.x steht in dem Sinne kein armvirt mehr zu Verfügung. Aber der aufmerksame Leser der Release Notes findet den Hinweis das, dass entsprechende Release in armsr/armv7 und armsr/armv8 gewandert ist.

Als erste lädt man sich entsprechend der Architektur das rootfs.tar.gz herunter. Idealerweise mit einem Download wie wget oder aria2c.

Das Dockerfile sieht wie folgt aus:

Dockerfile
FROM scratch
 
ADD openwrt-23.05.2-armsr-armv8-rootfs.tar.gz /
 
RUN     mkdir -p /var/lock/ && opkg update && \
        mkdir -p /var/run 
 
EXPOSE 80/tcp 
 
USER root
 
CMD ["/sbin/init"]

Der Rest sollte plausibel sein und funktioniert wie bei anderen Dockerfiles/-containern. Das Ergebnis ist ein verdammt schmaler Container.