为群友做的方便编译openwrt所使用Ubuntu容器编译环境:
Ubuntu 14.04
Ubuntu 19.10
14.04版:
docker run \
-it -d \
--restart=always \
--name=ubuntu-host \
--hostname=ubuntu \
-p 2022:22 \
raiuka/ubuntu-lede:14.04 /etc/run.sh
19.10版:
docker run \
-it -d \
--restart=always \
--name=ubuntu-host \
--hostname=ubuntu \
-p 2022:22 \
raiuka/ubuntu-lede:19.10 /etc/run.sh
容器建立好以后,可以直接ssh [email protected] -p 2022登录到容器内,默认用户user/123456,root用户root/654321。
注意:
由于openwrt的编译需要50G+的空间,请确认你的docker数据所在的盘空间是否足够,如果有需要可以使用
-v <YOUR_OPENWRT_DIR>:/home/user/lede参数来映射你的目录。
补充说明: 如果想在宿主机系统和容器中同时对两个文件夹进行操作,则需要对宿主机的用户进行映射,方法如下:
[rayyu@Server ~]$id
uid=1000(rayyu) gid=1000(rayyu)
2.登陆到容器中,切换到root用户修改user用户的uid和gid:
user@ubuntu:~$ su -
Password:
root@ubuntu:~#
root@ubuntu:~# usermod -u 1000 user #这条命令执行后需要耐心等待一段时间,1000对应上一个id命令中输出的uid
root@ubuntu:~# groupmod -g 1000 user #1000对应上一个id命令中输出的gid
FROM ubuntu:14.04 #可以更换14.04版本到任意版本
#Build for Openwrt Compiling
LABEL maintainer "[email protected]"
LABEL Version "1.0 beta"
ENV DEBIAN_FRONTEND=noninteractive
RUN echo "==> Install toolchain..." \
&& apt-get update \
&& apt-get install -y tzdata openssh-client openssh-server \
&& ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& apt-get install -y build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint wget tree net-tools screen iputils-ping \
&& rm -rf /var/lib/apt/lists/* \
&& echo "==> Setup SSH and login parameters" \
&& mkdir /run/sshd \
&& sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
&& useradd -m user -s /bin/bash \ #如果需要从宿主机映射目录到容器,可添加-u <PID>参数,PID对应宿主机用户的pid
&& echo "root:654321" | chpasswd \
&& echo "user:123456" | chpasswd \
&& echo '#!/bin/bash' > /etc/run.sh \
&& echo '/etc/init.d/ssh start' >> /etc/run.sh \
&& echo 'tail -f /dev/null' >> /etc/run.sh \
&& chmod +x /etc/run.sh
CMD ["/usr/sbin/sshd","-D"]
USER user
WORKDIR /home/user
RUN echo "==> Download openwrt..." \
&& git clone https://github.com/coolsnowwolf/lede \
&& /home/user/lede/scripts/feeds update -a \
&& /home/user/lede/scripts/feeds install -a \
&& echo '#!/bin/bash' > /home/user/lede/update.sh \
&& echo 'rm -rf tmp && make clean > /dev/null' >> /home/user/lede/update.sh \
&& echo 'git pull && ./scripts/feeds update -a && ./scripts/feeds install -a' >> /home/user/lede/update.sh \
&& echo 'echo -e "\033[37;31;5mAll files were updated...\033[39;49;0m"' >> /home/user/lede/update.sh \
&& chmod +x /home/user/lede/update.sh
EXPOSE 22
./update.sh,就可以自动清除tmp文件,之前编译的固件,以及自动git pull和feeds update/install。user@ubuntu:~/lede$./update.sh
Collecting target info: doneremote: Enumerating objects: 93, done.
remote: Counting objects: 100% (93/93), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 53 (delta 28), reused 49 (delta 26), pack-reused 0
Unpacking objects: 100% (53/53), done.
From https://github.com/coolsnowwolf/lede
d24f2401..6ab6f0c6 master -> origin/master
Updating d24f2401..6ab6f0c6
Fast-forward
include/image-commands.mk | 14 ++++++
package/firmware/ipq-wifi/Makefile | 3 +-
package/firmware/ipq-wifi/board-p2w_r619ac.qca4019 | Bin 0 -> 24300 bytes
package/network/services/wireguard/Makefile | 4 +-
package/network/services/wireguard/files/wireguard.sh | 333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------
scripts/mkits-qsdk-ipq-image.sh | 59 ++++++++++++++++++++++++
target/linux/ipq40xx/base-files/etc/board.d/02_network | 1 +
target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 2 +
target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | 1 +
target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts | 327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts | 327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
target/linux/ipq40xx/image/Makefile | 15 +++++++
target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch | 5 ++-
target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch | 4 +-
14 files changed, 916 insertions(+), 179 deletions(-)
create mode 100644 package/firmware/ipq-wifi/board-p2w_r619ac.qca4019
create mode 100755 scripts/mkits-qsdk-ipq-image.sh
create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts
create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-r619ac.dts
Updating feed 'luci' from 'https://github.com/coolsnowwolf/luci' ...
Already up to date.
Create index file './feeds/luci.index'
Updating feed 'packages' from 'https://github.com/coolsnowwolf/packages' ...
Already up to date.
Create index file './feeds/packages.index'
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git;openwrt-18.06' ...
Already up to date.
Create index file './feeds/routing.index'
Installing all packages from feed luci.
Installing all packages from feed packages.
Installing all packages from feed routing.
All files were updated...
Enjoy~
Content type
Image
Digest
Size
868.5 MB
Last updated
almost 7 years ago
docker pull raiuka/ubuntu-lede:19.10