This repository contains scripts to create Docker containers hosting OpenWrt. https://hub.docker.com/r/openwrtorg/rootfs
 
Go to file
Paul Spooren 7d14bdaa7a ci: don't cache docker builds
Signed-off-by: Paul Spooren <mail@aparcar.org>
2024-08-06 15:17:07 +02:00
.github ci: don't cache docker builds 2024-08-06 15:17:07 +02:00
keys ci: switch to GitHub actions 2023-03-20 18:31:20 +01:00
.gitignore expand gitignore with usign/ & gpg/ 2019-10-11 13:56:14 -10:00
Dockerfile Support new zstd compressed archives 2024-04-15 09:29:37 +02:00
LICENSE
README.md Fix quay.io urls 2023-12-28 12:00:31 +01:00

README.md

OpenWrt Docker repository

GPL-2.0-only License CI Docker Hub

This repository contains files to create OpenWrt containers. While mostly used for our CI you may use the scripts to build containers on your own.

Available containers:

  • sdk compile OpenWrt packages
  • imagebuilder create firmware images
  • rootfs test software inside an OpenWrt runtime

All containers are mirrored to the follwing three registries under openwrt account:

* We have switched our account from openwrtorg to openwrt on docker.io

Find more details on the container types below

sdk

Contains the OpenWrt SDK based on the same container we use for our Buildbot infrastructure. This can be useful when building packages on macOS, Windows or via CI.

SDK Example

docker run --rm -v "$(pwd)"/bin/:/builder/bin -it openwrt/sdk
# inside the Docker container
./scripts/feeds update packages
make defconfig
./scripts/feeds install tmate
make package/tmate/{clean,compile} -j$(nproc)

Enjoy a local OpenWrt SDK container building the tmate package and but the binary in hosts ./bin folder.

SDK Tags

All currently available SDKs via tags in the following format:

  • <target>-<subtarget>[-<branch|tag|version>]

The branch|tag|version can be something like openwrt-22.03 (branch), v22.03.4 (tag) or 21.02.3 (version). To use daily builds use either main or SNAPSHOT.

imagebuilder

Contains the OpenWrt ImageBuilder based on the same container we use for our buildbot infrastructure. This can be useful when creating images on macOS, Windows or via CI.

ImageBuilder Example

docker run --rm -v "$(pwd)"/bin/:/builder/bin -it openwrt/imagebuilder
# inside the Docker container
make image PROFILE=generic PACKAGES=tmate

Enjoy a local OpenWrt ImageBuilder container building an image for x86/64 and store the binary in hosts ./bin folder.

ImageBuilder Tags

All currently available ImageBuilders via tags in the following format:

  • <target>-<subtarget>[-<branch|tag|version>]
  • <arch>[-<branch|tag|version>]

The branch|tag|version can be something like openwrt-22.03 (branch), v22.03.4 (tag) or 21.02.3 (version). To use daily builds use either main or SNAPSHOT.

rootfs (experimental)

The OpenWrt runtime uses multiple active services to work, it's not really suited as a container. This rootfs should only be used for special cases like CI testing.

An unpackaged version of OpenWrt's rootfs for different architectures. The ./rootfs folder requires slight modifications to work within Docker, additional files for the rootfs should be added there before building.

Rootfs Example

docker run --rm -it openwrt/rootfs
# inside the Docker container
mkdir /var/lock/
opkg update
opkg install tmate
tmate

Enjoy a local OpenWrt container running the x86/64 architecture with internet access. Once closed the container is removed.

Rootfs Tags

"|||armvirt/32|armvirt/64|malta/be|mvebu/cortexa9

  • x86/64 or x86_64
  • x86/generic or i386_pentium4
  • x86/geode or i386_pentium-mmx
  • armvirt/32 or arm_cortex-a15_neon-vfpv4
  • armvirt/64 or aarch64_cortex-a53
  • malta/be or mips_24kc
  • mvebu/cortexa9 or arm_cortex-a9_vfpv3-d16

Build Your Own

If you wan to create your own container you can use the Dockerfile. You can set the following build arguments:

  • TARGET - the target to build for (e.g. x86/64)
  • DOWNLOAD_FILE - the file to download (e.g. imagebuilder-.*x86_64.tar.xz)
  • FILE_HOST - the host to download the ImageBuilder/SDK/rootfs from (e.g. downloads.openwrt.org)
  • VERSION_PATH - the path to the ImageBuilder/SDK/rootfs (e.g. snapshots or releases/21.02.3)

Example ImageBuilder

If you plan to use your own server please add your own GPG key to the ./keys/ folder.

docker build \
    --build-arg TARGET=x86/64 \
    --build-arg DOWNLOAD_FILE="imagebuilder-.*x86_64.tar.xz" \
    --build-arg FILE_HOST=downloads.openwrt.org \
    --build-arg VERSION_PATH=snapshots \
    -t openwrt/x86_64 .