由于网络原因编译openwrt时经常下载失败,搭建编译环境也很复杂,
因此想到利用阿里云、Github action等远程构建docker镜像,将编译的下载步骤放在远程进行。
目前还有一个方法就是利用Github action直接远程编译,但这样做有3个问题:
- 编译需要config文件,生成这个文件又需要下载一些库,这就造成了循环=。=。而通过docker你拉下来的镜像中已经下好了所有库,不需要下载。
- 如果你要对config进行一些小的改动,通过Github action就需要从头开始编译。而利用docker镜像可以直接进入docker容器修改文件后编译,不需从头开始。
- Github action有一定学习成本,而dockerfile和shell差不多,就算没接触过过也能快速上手
开始之前
本教程所有代码在:
关于Docker的一些概念,以及如何使用阿里云、Github action等来构建docker镜像不在本教程范围,你可以自行学习。
编译步骤
首选说明下,我是分成了4个镜像来编译的,base
, v1
, v2
, v3
,你完全可以只构建一个镜像。
这样的好处是有些镜像可以重复利用,编译有问题时可以使用上一步的镜像来再次构建,避免从头开始。
每个镜像说明: