FROM openwrt/rootfs:latest # Install LuCI, bootstrap theme, and dependencies. # Build this image with podman (NOT docker buildx) because Podman-backed Docker # seccomp blocks uclient-fetch syscalls at a level BuildKit cannot override. RUN mkdir -p /etc/apk/repositories.d /var/lock /var/run /www && \ printf \ 'https://downloads.openwrt.org/snapshots/targets/x86/64/packages/packages.adb\n\ https://downloads.openwrt.org/snapshots/packages/x86_64/base/packages.adb\n\ https://downloads.openwrt.org/snapshots/packages/x86_64/luci/packages.adb\n\ https://downloads.openwrt.org/snapshots/packages/x86_64/packages/packages.adb\n\ https://downloads.openwrt.org/snapshots/packages/x86_64/routing/packages.adb\n' \ > /etc/apk/repositories.d/distfeeds.list && \ apk add --no-cache --allow-untrusted \ luci-base luci-compat luci-mod-admin-full luci-proto-ppp \ luci-theme-bootstrap \ uhttpd uhttpd-mod-ubus ucode-mod-lua \ ca-certificates curl # Application files (self-contained image; compose may override with volumes) COPY root/usr/sbin/zt-gateway-switch /usr/sbin/zt-gateway-switch RUN chmod +x /usr/sbin/zt-gateway-switch && \ rm -f /var/run/zt-gateway-drain.* /tmp/zt-gw-stderr /tmp/zt-gw-out-* COPY docker/openwrt-luci-entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh EXPOSE 80 ENTRYPOINT ["/entrypoint.sh"]