add docker as builder
This commit is contained in:
parent
11133ffee3
commit
ddc71a836d
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,7 @@
|
||||
build
|
||||
dl
|
||||
ib
|
||||
ib_x86_64
|
||||
ib_rk35xx
|
||||
ib_rk33xx
|
||||
|
||||
|
@ -1,2 +1,4 @@
|
||||
# istoreos-intl-builder
|
||||
Github Actions ImageBuilder istoreos intl
|
||||
# iStoreNAS
|
||||
|
||||
Define a system base iStoreOS by yourself.
|
||||
|
||||
|
32
docker/Dockerfile
Normal file
32
docker/Dockerfile
Normal file
@ -0,0 +1,32 @@
|
||||
FROM debian:buster
|
||||
|
||||
COPY sources.list /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y \
|
||||
sudo time git-core subversion build-essential g++ bash make \
|
||||
libssl-dev patch libncurses5 libncurses5-dev zlib1g-dev gawk \
|
||||
flex gettext wget unzip bzip2 xz-utils device-tree-compiler python python-distutils-extra \
|
||||
python3 python3-distutils-extra python3-setuptools swig rsync curl \
|
||||
libsnmp-dev liblzma-dev libpam0g-dev cpio rsync gcc-multilib && \
|
||||
apt-get clean && \
|
||||
useradd -m builder && \
|
||||
echo 'user ALL=NOPASSWD: ALL' > /etc/sudoers.d/builder
|
||||
|
||||
# set system wide dummy git config
|
||||
RUN git config --system user.name "builder" && git config --system user.email "builder@example.com"
|
||||
|
||||
USER builder
|
||||
|
||||
VOLUME /work
|
||||
VOLUME /work/ib
|
||||
|
||||
ENV WORK_SOURCE=/work
|
||||
ENV WORK_TARGET=x86_64
|
||||
|
||||
COPY build.sh /bin/build.sh
|
||||
|
||||
WORKDIR /work
|
||||
|
||||
ENTRYPOINT [ "/bin/build.sh" ]
|
||||
|
77
docker/build.sh
Executable file
77
docker/build.sh
Executable file
@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
case ${WORK_TARGET} in
|
||||
x86_64)
|
||||
;;
|
||||
rk35xx)
|
||||
;;
|
||||
rk33xx)
|
||||
;;
|
||||
*)
|
||||
echo "not supported"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
source env/${WORK_TARGET}.env
|
||||
|
||||
IB_FOUND=0
|
||||
if grep -q istore_nas ib/repositories.conf; then
|
||||
IB_FOUND=1
|
||||
else
|
||||
IB_FOUND=0
|
||||
fi
|
||||
|
||||
set -e
|
||||
if [ "$IB_FOUND" = "0" ]; then
|
||||
if [ ! -f dl/${IB_NAME}.tar.xz ]; then
|
||||
wget -O dl/${IB_NAME}.tar.xz ${IB_URL}${IB_NAME}.tar.xz
|
||||
wget -O dl/sha256sums ${IB_URL}sha256sums
|
||||
[ -s dl/sha256sums ]
|
||||
[ -s dl/${IB_NAME}.tar.xz ]
|
||||
grep -Fq ${IB_NAME}.tar.xz dl/sha256sums
|
||||
cd dl && sha256sum -c --ignore-missing --status sha256sums
|
||||
fi
|
||||
|
||||
cd ${WORK_SOURCE}
|
||||
tar -C ib --strip-components=1 -xJf dl/${IB_NAME}.tar.xz
|
||||
cp -a src/* ib/
|
||||
ls patches/ | sort | xargs -n1 sh -c 'patch -p1 -d ib -i ../patches/$0'
|
||||
sed -i 's/ unofficial/ oversea/' ib/Makefile
|
||||
ls packages/all | cut -d "_" -f 1 | xargs -n1 sh -c 'rm ib/packages/$0*.ipk'
|
||||
cp packages/all/*.ipk ib/packages/
|
||||
mkdir -p ib/files
|
||||
cp -a files/all/* ib/files
|
||||
case ${WORK_TARGET} in
|
||||
*x86*)
|
||||
cp src/repositories_x86_64.conf ib/repositories.conf
|
||||
cp src/target_x86_64.manifest ib/target.manifest
|
||||
;;
|
||||
*rk35xx*)
|
||||
cp src/repositories_aarch64.conf ib/repositories.conf
|
||||
cp src/target_rk35xx.manifest ib/target.manifest
|
||||
;;
|
||||
*rk33xx*)
|
||||
cp src/repositories_aarch64.conf ib/repositories.conf
|
||||
cp src/target_rk33xx.manifest ib/target.manifest
|
||||
;;
|
||||
*bcm2711*)
|
||||
cp src/repositories_aarch64.conf ib/repositories.conf
|
||||
cp src/target_bcm2711.manifest ib/target.manifest
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
set +e
|
||||
|
||||
cd ${WORK_SOURCE}/ib
|
||||
|
||||
case $1 in
|
||||
Pack)
|
||||
make -f release.mk IB=1
|
||||
make -f multi.mk release_env
|
||||
;;
|
||||
*)
|
||||
make -f multi.mk image_multi FILES="files"
|
||||
;;
|
||||
esac
|
||||
|
9
docker/sources.list
Normal file
9
docker/sources.list
Normal file
@ -0,0 +1,9 @@
|
||||
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
|
||||
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
|
||||
deb http://mirrors.aliyun.com/debian-security buster/updates main
|
||||
deb-src http://mirrors.aliyun.com/debian-security buster/updates main
|
||||
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
|
||||
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
|
||||
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
|
||||
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
|
||||
|
Loading…
Reference in New Issue
Block a user