WSL2とDockerでVyOSのISOビルド
VyOSを使ってみようと思ったのでISOをビルドしました
2022/01 色々間違えていたので書き直した。あと1.3がLTSになったのでビルドバージョンも変えた
前提条件
- ビルドするバージョンはLTS Releaseの1.3
- WSL2でUbuntu入れておく
- WSL1ではたぶん動かないので
wsl.exe --list --verbose
で確認する - Windows 10 に WSL をインストールする | Microsoft Docs
- WSL1ではたぶん動かないので
- Windows側でDocker Desktopは使わず、WSL2内にDockerを入れる。これは好み
Dockerインストール
- 公式手順は以下
- WSLで以下を実行
# 諸々のツールを入れる
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
# リポジトリ鍵を追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリを追加
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# dockerインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# docker起動
sudo service docker start
ISOビルド
- 公式手順は以下。ビルド済みDockerイメージがあると書かれているので公式イメージを使う
- 以下Redditの会話にあるように、公式で配布されているLTS版ISOと全く同じものをビルドするのは無理っぽいので細かいバージョンは気にしない
- Compiling Equuleus 1.3.0 Commit : vyos
This has already been discussed I believe. There absolutely isn’t a way to generate reproducible builds because some of the packages the build process grabs are directly from Debian.
- Compiling Equuleus 1.3.0 Commit : vyos
# ビルド用イメージをダウンロードしてbash起動
sudo docker run --name temp-vyos --privileged -it docker.io/vyos/vyos-build:equuleus bash
- 以下はコンテナ内で実行
# ビルド用の諸々をclone
cd /
git clone --branch equuleus --single-branch https://github.com/vyos/vyos-build
# 設定 ここで指定しているバージョンはなんでもいいはずなのでビルド日にする
cd /vyos-build
./configure --architecture amd64 --build-type release --version 1.3.20220110
# ISOビルド かなり時間かかる
make iso
# いい感じにビルドされたことを確認してコンテナから出る
ls -l /vyos-build/build
exit
- ISOを回収してコンテナ削除
sudo docker cp temp-vyos:/vyos-build/build/live-image-amd64.hybrid.iso ~/
sudo docker container rm temp-vyos