dockerでimagebuilder環境を作る方法

docker を使うと 簡単にOS環境を準備できるので、比較的楽に imagebuilder 環境を作ることができます。
OpenWrt Projectが配布している docker imageもあるのですが今回は自分で環境を作るアプローチで行きます。

※要 Docker Hubアカウント

docker の準備

Linux環境であればDocker CEを、WindowsならDocker Desktop for Windows、macならDocker Desktop for macなど、docker が使える環境を用意してください。

ホスト側準備

作業用ディレクトリを準備します。
mkdir mnt

docker image 取得

docker用としてパッケージングされた ubuntu 18.04のimageをdocker hubから pullします。
docker pull ubuntu:18.04

コンテナ起動と必要コマンド準備

「IMAGEBUILDER」というコンテナ名でubuntuを起動します。
docker run -d -it --name IMAGEBUILDER -v `pwd`/mnt:/mnt -w /mnt ubuntu:18.04 bash

起動したコンテナで apt-get updateとimagebuilderの前提コマンドなどをインストールします。
docker exec IMAGEBUILDER apt-get update
docker exec IMAGEBUILDER apt-get install -y build-essential libncurses5-dev zlib1g-dev \
gawk git gettext libssl-dev xsltproc wget unzip python curl

imagebuilderの取得と展開

コンテナ内からOpenWrt公式のimagebuilder をダウンロードして展開させます。(以下は 19.07.1、bcm53xxの例)
docker exec IMAGEBUILDER bash -c "curl https://downloads.openwrt.org/releases/19.07.1/targets/bcm53xx/generic/openwrt-imagebuilder-19.07.1-bcm53xx.Linux-x86_64.tar.xz | tar Jxv -C /mnt"

コンテナ内にshellで接続

docker exec -it IMAGEBUILDER bash

あとは通常のlinuxでの作業同様に、 /mnt/openwrt-imagebuilder…以下に cd して makeコマンドでimageを生成してください。
マッピングしているのでホストOS側の mnt の中に imageファイルが生成されます。

作業後の後片付け

docker コンテナの状態を確認し、停止させる
docker ps -a
docker stop IMAGEBUILDER
docker ps -a

停止したdocker コンテナの削除
docker ps -a
docker rm IMAGEBUILDER
docker ps -a

pullしたubuntu:18.04 imageが不要なら削除する
docker images
docker rmi ubuntu:18.04
docker images
最終更新:2020年02月11日 15:17