Skip to content

Latest commit

 

History

History
107 lines (92 loc) · 3.69 KB

README_cn.md

File metadata and controls

107 lines (92 loc) · 3.69 KB

Full version and architecture OpenWrt build SDK Docker images

部署

通过Dockerfile构建

# docker build --tag fasheng/openwrt-buildsdk:21.02.3-ath79 --file dockerfiles/Dockerfile-21.02.3-ath79 .

或者通过切换tag构建

$ git checkout 21.02.3-ath79
# docker build --tag fasheng/openwrt-buildsdk:21.02.3-ath79 .

或者从docker hub拉取镜像

# docker pull fasheng/openwrt-buildsdk:21.02.3-ath79
# docker login ghcr.io
# docker pull ghcr.io/fasheng/openwrt-buildsdk:21.02.3-ath79

编译

注意外部传入的volume目录Owner权限要设置为1000:1000或者将访问权限 设置为a+rwx, 否则Docker内的openwrt用户无法访问.

以编译ngrokc为例, 完整示例如下:

$ mkdir -p dl bin feeds
# chown 1000:1000 dl bin feeds
# docker run -ti --rm \
    -v $(pwd)/dl:/home/openwrt/openwrtsdk/dl \
    -v $(pwd)/bin:/home/openwrt/openwrtsdk/bin \
    -v $(pwd)/feeds:/home/openwrt/openwrtsdk/feeds \
    fasheng/openwrt-buildsdk:21.02.3-ath79
docker> cd openwrtsdk
docker> echo 'src-git custom https://github.com/kiddin9/openwrt-packages' >> feeds.conf.default
docker> ./scripts/feeds update
docker> ./scripts/feeds install ngrokc zlib kmod-cryptodev
docker> make  # 记得在menuconfig界面禁用 global building settings/Cryptographically sign package lists 这一选项
$ ls bin/packages

支持新版SDK

$ ./updater.sh gen_sdk_sources 22.03.0-rc4
$ ./updater.sh gen_dockerfiles 22.03.0-rc4 Dockerfile-21.02.0.ubuntu.tpl

updater.sh脚本简介

由于OpenWrt不同的版本和架构分别对应指定的SDK, 为了方便部署, 目录下 updater.sh 用来批量生成对应的Dockerfile文件.

  • 通过网页抓取各版本架构的SDK链接

    $ ./updater.sh gen_sdk_sources 21.02.3
    $ ./updater.sh gen_sdk_sources 19.07.2
    $ ./updater.sh gen_sdk_sources 18.06.2
    $ ./updater.sh gen_sdk_sources 17.01.4
    $ ./updater.sh gen_sdk_sources 15.05.1 chaos_calmer
    $ ./updater.sh gen_sdk_sources 15.05   chaos_calmer
    $ ./updater.sh gen_sdk_sources 14.07   barrier_breaker
    
  • 列出抓取成功的OpenWrt版本架构信息

    $ ./updater.sh list_sdk_sources 21.02.3 19.07.2
    $ ./updater.sh list_sdk_sources
    
  • 生成各版本架构对应的Dockerfile

    $ ./updater.sh gen_dockerfiles 21.02.3 Dockerfile-21.02.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 19.07.2 Dockerfile-17.01.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 18.06.2 Dockerfile-17.01.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 17.01.4 Dockerfile-17.01.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 15.05.1 Dockerfile-17.01.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 15.05   Dockerfile-17.01.0.ubuntu.tpl
    $ ./updater.sh gen_dockerfiles 14.07   Dockerfile-17.01.0.ubuntu.tpl
    
  • 更新对应的git tags

    $ git checkout gentags
    $ git merge master
    $ ./updater.sh gen_git_tags 21.02.3
    
  • 上传git tags, 用于触发Github Action自动化构建, 注意避免直接使用 git push --tags 命令

    $ ./updater.sh trigger_github_action github 21.02.3-ramips-mt7621
    $ ./updater.sh trigger_github_action github 21.02.3-ath79
    $ ./updater.sh trigger_github_action github 21.02.3-ramips-mt76x8
    $ ./updater.sh trigger_github_action github 21.02.3-mediatek-mt7622
    $ ./updater.sh trigger_github_action github 21.02.3-mvebu-cortexa9
    $ ./updater.sh trigger_github_action github 21.02.3-ramips-mt7620
    $ ./updater.sh trigger_github_action github 21.02.3-ipq40xx
    $ ./updater.sh trigger_github_action github 21.02.3-bcm63xx
    $ ./updater.sh trigger_github_action github 21.02.3-ipq806x
    $ ./updater.sh trigger_github_action github 21.02.3-x86-64
    

参考