-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild_with_docker.sh
executable file
·40 lines (31 loc) · 1.09 KB
/
build_with_docker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
set -x -e
TARGETS=$1
if [ -z $TARGETS ]; then
TARGETS="install"
elif [ $TARGETS == "all" ]; then
TARGETS="kernel qemu-x centos-rootfs"
fi
PWD=`pwd`
# USER_NAME=`whoami`
# USER_ID=`id -u`
USER_NAME="root"
USER_ID="0"
IMAGE=linux-kernel-dev
BUILD_DIR=/tmp/linux-kernel
CENTOS_PREPARED="no"
if [ $TARGETS == "runtime-image" ]; then
docker build -t linux-kernel-runtime --build-arg USER_NAME=root --build-arg USER_ID=0 -f Dockerfile.runtime .
exit 0
fi
docker build -t $IMAGE --build-arg USER_NAME=$USER_NAME --build-arg USER_ID=$USER_ID -f Dockerfile.build .
for TARGET in $TARGETS; do
if [ $TARGET == centos-rootfs ]; then
docker run -ti --rm -v $PWD:$BUILD_DIR $IMAGE bash -c "mkdir -p $BUILD_DIR/out && chmod +666 $BUILD_DIR/out && rm -rf $BUILD_DIR/out/centos/*"
./prepare_centos.sh $PWD/out/centos
CENTOS_PREPARED="yes"
fi
docker run -ti --rm -v $PWD:$BUILD_DIR --cap-add NET_ADMIN --device /dev/net/tun:/dev/net/tun:rw \
--device /dev/kvm:/dev/kvm:rw $IMAGE bash -c \
"source scl_source enable devtoolset-7 && make CENTOS_PREPARED=$CENTOS_PREPARED -C $BUILD_DIR $TARGET"
done