收起左侧

闲来无事,弄个openwrt编译镜像,供大家参考

0
回复
476
查看
[ 复制链接 ]

8

主题

6

回帖

0

牛值

江湖小虾

2025-2-12 21:21:02 显示全部楼层 阅读模式

<br /> <br />

Docker版Ubuntu 部署openwrt编译服务器教程

前言:PVE系统盘有限,又不想装个额外的虚拟机或者物理机的ubuntu,于是乎就想了用docker版ubuntu来编译

具体教程步骤如下:

具体环境,PVE下虚拟化的飞牛OS

一、 拉取镜像 docker pull ubuntu

二、 建立镜像

不建议用webui来部署,因为一启动如果ubuntu没有在运行的进程就会自己停止,所以我用了命令行。

docker run --name 容器名字 -ti -v /宿主文件夹:/镜像文件夹 -d -p 8022(自己设端口号):22 ubuntu

映射端口看自己喜欢,文件弄个映射是万一没有合适的工具(类似winscp这种)还可以命令行黏贴后拷贝出来

三、 进入ubuntu系统,并更新系统

进系统有这么几种方法:

  1. 通过飞牛的终端进入/bin/bash,如果用portainer等webui也可以进入

  1. 通过命令行进入 SSH输入:docker exec -t -i 新建容器的名字 /bin/bash

第一步,因为是精简系统,大小才60M左右,所以基本上工具都没有的,需要先更新系统,输入 apt-get update。由于连ssh还有vim都没有所以一开始的更新只能从国外服务器更新,速度很慢。。。。。要有心理准备。

第二步,同样原因,所以我建议先安装vim 命令 apt-get install vim

第三步,先换源,换国内源就行,个人觉得阿里的比较快。

1.备份源配置文件,本身在root下所以不需要sudo了

cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak

  1. 编辑源配置文件

vim /etc/apt/sources.list.d/ubuntu.sources

用#禁用相关源地址

然后黏贴入以下内容:

Types: deb

URIs: http://mirrors.aliyun.com/ubuntu/

Suites: noble noble-updates noble-security

Components: main restricted universe multiverse

Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

第四步、安装ssh服务

apt-get install openssh-client

apt-get install openssh-server

修改root的密码及ssh链接权限

  1.  改root密码,输入passwd root,再输两次密码(屏幕不显示)就好了
  2.  改链接权限 输入vi /etc/ssh/sshd\_config 找到 #PermitRootLogin prohibit-password 改为PermitRootLogin yes
  3.  启动 ssh服务 输入/etc/init.d/ssh start 如果在安装完ssh的时候就运行过了,那么需要重启ssh服务service ssh restart
  4.  安装net-tools的安装包 apt-get install net-tools 可以查看ip

第五步,新建用户

此时已经可以用SSH 链接docker映射的端口来控制ubuntu了,由于编译需要在非root账户运行,需要适用adduser命令新建一个账户

四、 安装编译环境并拉取项目

以LEDE项目为例子,此处感谢lean大佬的奉献项目地址:https://github.com/coolsnowwolf/lede

安装依赖如果在root账户下不需要sudo ,

  1.  安装依赖

apt update -y

apt full-upgrade -y

apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \

bzip2 ccache clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \

genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \

libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \

libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \

python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \

swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

  1.  下载源代码,更新 feeds 并选择配置,需要在普通用户下

git clone https://github.com/coolsnowwolf/lede

cd lede

./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

  1.  首次编译,建议单线程

make download -j8 make V=s -j1

  1.  二次编译

cd lede

git pull

./scripts/feeds update -a

./scripts/feeds install -a

make defconfig

make download -j8

make V=s -j\$(nproc)

如果需要重新配置:

rm -rf .config

make menuconfig

make V=s -j\$(nproc)

编译完成后输出路径:bin/targets

五、 可以保存修改的镜像

docker commit [容器ID/容器名] [REPOSITORY:TAG]

收藏
送赞 1
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则