Aded the image generation to the build chain. Script improvements. Added 'rebuild' script and script to test the MLL image.
This commit is contained in:
parent
1a219a8e0e
commit
2113a18fbe
45
src/13_generate_image.sh
Executable file
45
src/13_generate_image.sh
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "*** GENERATE IMAGE BEGIN ***"
|
||||||
|
|
||||||
|
SRC_DIR=$(pwd)
|
||||||
|
|
||||||
|
# Prepare the work area.
|
||||||
|
rm -f mll_image.tgz
|
||||||
|
rm -rf $SRC_DIR/work/mll_image
|
||||||
|
mkdir -p $SRC_DIR/work/mll_image
|
||||||
|
|
||||||
|
# Copy the rootfs.
|
||||||
|
cp -r $SRC_DIR/work/rootfs/* \
|
||||||
|
$SRC_DIR/work/mll_image
|
||||||
|
|
||||||
|
# Copy the overlay area.
|
||||||
|
cp -r $SRC_DIR/work/src/minimal_overlay/rootfs/* \
|
||||||
|
$SRC_DIR/work/mll_image
|
||||||
|
|
||||||
|
cd $SRC_DIR/work/mll_image
|
||||||
|
|
||||||
|
# Generate the image file (ordinary 'tgz').
|
||||||
|
tar -zcf $SRC_DIR/mll_image.tgz *
|
||||||
|
|
||||||
|
cat << CEOF
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
# #
|
||||||
|
# Minimal Linux Live image 'mll_image.tgz' has been generated. #
|
||||||
|
# #
|
||||||
|
# You can import the MLL image in Docker like this: #
|
||||||
|
# #
|
||||||
|
# docker import mll_image.tgz minimal-linux-live:latest #
|
||||||
|
# #
|
||||||
|
# Then you can run MLL container in Docker like this: #
|
||||||
|
# #
|
||||||
|
# docker run -it minimal-linux-live /bin/sh #
|
||||||
|
# #
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
CEOF
|
||||||
|
|
||||||
|
echo "*** GENERATE IMAGE END ***"
|
@ -28,17 +28,20 @@ cleanup() {
|
|||||||
rm -rf $TEMP_DIR
|
rm -rf $TEMP_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
buildDockerImage() {
|
buildImage() {
|
||||||
rm -f $SRC_DIR/mll_image.tgz
|
rm -f $SRC_DIR/mll_image.tgz
|
||||||
cd $TEMP_DIR/docker_root
|
cd $TEMP_DIR/image_root
|
||||||
tar -zcf $SRC_DIR/mll_image.tgz *
|
tar -zcf $SRC_DIR/mll_image.tgz *
|
||||||
cd $SRC_DIR
|
cd $SRC_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
prepareDocker() {
|
prepareImage() {
|
||||||
mkdir $TEMP_DIR/docker_root
|
mkdir $TEMP_DIR/image_root
|
||||||
cp -r $TEMP_DIR/rootfs_extracted/* $TEMP_DIR/docker_root
|
cp -r $TEMP_DIR/rootfs_extracted/* $TEMP_DIR/image_root
|
||||||
cp -r $TEMP_DIR/iso_extracted/minimal/rootfs/* $TEMP_DIR/docker_root
|
|
||||||
|
if [ -d $TEMP_DIR/iso_extracted/minimal/rootfs ] ; then
|
||||||
|
cp -r $TEMP_DIR/iso_extracted/minimal/rootfs/* $TEMP_DIR/image_root
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
extractRootfs() {
|
extractRootfs() {
|
||||||
@ -57,12 +60,12 @@ extractISO() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
prepareTempDir() {
|
prepareTempDir() {
|
||||||
if [ -d "`ls -d mll_docker_*`" ] ; then
|
if [ -d mll_image ] ; then
|
||||||
chmod -R ugo+rw mll_docker_*
|
chmod -R ugo+rw mll_image
|
||||||
rm -rf mll_docker_*
|
rm -rf mll_image
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TEMP_DIR=`mktemp -d mll_docker_XXXX`
|
TEMP_DIR=$SRC_DIR/mll_image
|
||||||
}
|
}
|
||||||
|
|
||||||
checkPrerequsites() {
|
checkPrerequsites() {
|
||||||
@ -104,8 +107,8 @@ main() {
|
|||||||
prepareTempDir
|
prepareTempDir
|
||||||
extractISO
|
extractISO
|
||||||
extractRootfs
|
extractRootfs
|
||||||
prepareDocker
|
prepareImage
|
||||||
buildDockerImage
|
buildImage
|
||||||
cleanup
|
cleanup
|
||||||
finalWords
|
finalWords
|
||||||
}
|
}
|
||||||
|
14
src/rebuild.sh
Executable file
14
src/rebuild.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# This script is useful if you have already built MLL and
|
||||||
|
# you want to perform fast repackaging of all components.
|
||||||
|
#
|
||||||
|
# Note: this will also rebuild all overlay bundles.
|
||||||
|
|
||||||
|
./08_prepare_src.sh
|
||||||
|
./09_generate_rootfs.sh
|
||||||
|
./10_pack_rootfs.sh
|
||||||
|
./12_generate_iso.sh
|
||||||
|
./13_generate_image.sh
|
29
src/test_image.sh
Executable file
29
src/test_image.sh
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
clear() {
|
||||||
|
if [ ! "`docker ps -a | grep minimal`" = "" ] ; then
|
||||||
|
docker stop `docker ps -a | grep minimal | awk '{print $1}'`
|
||||||
|
docker rm `docker ps -a | grep minimal | awk '{print $1}'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! "`docker images -a | grep minimal`" = "" ] ; then
|
||||||
|
docker rmi `docker images -a | grep minimal | awk '{print $1}'`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
docker import mll_image.tgz minimal-linux-live:latest
|
||||||
|
docker run minimal-linux-live /bin/cat /etc/motd
|
||||||
|
}
|
||||||
|
|
||||||
|
clear
|
||||||
|
run
|
||||||
|
clear
|
||||||
|
|
||||||
|
cat << CEOF
|
||||||
|
|
||||||
|
Test passed - well done!
|
||||||
|
|
||||||
|
CEOF
|
Loading…
x
Reference in New Issue
Block a user