"RUNNING")
echo "Stopping (the old) container $OLD_CONTAINER_NAME"
lxc-stop --name=$OLD_CONTAINER_NAME
- echo "Stopped (the old) container $OLD_CONTAINER_NAME"
+ echo "Stopped (the old) container $OLD_CONTAINER_NAME"
;;
"STOPPED")
;;
"CentOS")
YUM_CONFIG=$SCRIPT_PATH/yum.conf.centos
YUM_RELEASEVER=$DISTRIBUTION_VERSION
- cp --archive --link \
- $LXC_PATH/base.$CONTAINER_OS/rootfs/* \
- $CONTAINER_BUILDROOT
+ for FQ_DIRECTORY in $BASE_CONTAINER_PATH/rootfs/*
+ do
+ DIRECTORY=$(basename $FQ_DIRECTORY)
+ case "$DIRECTORY" in
+ "usr")
+ # common for all containers
+ cp --archive --link $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ "dev" | "proc")
+ # already mounted, skip
+ ;;
+ *)
+ # each container must have its own version
+ cp --archive $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ esac
+ done
if [ -n "$SPEC_PACKAGES" ]
then
yum --assumeyes \
"Fedora")
DNF_CONFIG=$SCRIPT_PATH/dnf.conf.fedora
DNF_RELEASEVER=$DISTRIBUTION_VERSION
- cp --archive --link \
- $LXC_PATH/base.$CONTAINER_OS/rootfs/* \
- $CONTAINER_BUILDROOT
+ for FQ_DIRECTORY in $BASE_CONTAINER_PATH/rootfs/*
+ do
+ DIRECTORY=$(basename $FQ_DIRECTORY)
+ case "$DIRECTORY" in
+ "usr")
+ # common for all containers
+ cp --archive --link $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ "dev" | "proc")
+ # already mounted, skip
+ ;;
+ *)
+ # each container must have its own version
+ cp --archive $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ esac
+ done
if [ -n "$SPEC_PACKAGES" ]
then
dnf --assumeyes \
"Rocky")
YUM_CONFIG=$SCRIPT_PATH/yum.conf.rocky
YUM_RELEASEVER=$DISTRIBUTION_VERSION
- cp --archive --link \
- $LXC_PATH/base.$CONTAINER_OS/rootfs/* \
- $CONTAINER_BUILDROOT
+ for FQ_DIRECTORY in $BASE_CONTAINER_PATH/rootfs/*
+ do
+ DIRECTORY=$(basename $FQ_DIRECTORY)
+ case "$DIRECTORY" in
+ "usr")
+ # common for all containers
+ cp --archive --link $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ "dev" | "proc")
+ # already mounted, skip
+ ;;
+ *)
+ # each container must have its own version
+ cp --archive $FQ_DIRECTORY $CONTAINER_BUILDROOT
+ ;;
+ esac
+ done
if [ -n "$SPEC_PACKAGES" ]
then
yum --assumeyes \
DISTRIBUTION_FIRST_CHAR=$(echo "$DISTRIBUTION" | cut -c 1 | tr '[A-Z]' '[a-z]')
CONTAINER_OS="${DISTRIBUTION_FIRST_CHAR}$DISTRIBUTION_VERSION"
- if [ ! -d $LXC_PATH/base.$CONTAINER_OS ]
+ BASE_CONTAINER_PATH=$LXC_PATH/base.$CONTAINER_OS
+
+ if [ ! -d $BASE_CONTAINER_PATH ]
then
echo "The container does not have a base container." >&2
return 8
firstboot()
{
+ CONTAINER_ROOTFS=$CONTAINER_PATH/rootfs
+
if [ -d $CONTAINER_SOURCE_PATH/firstboot ]
then
- cp --archive $CONTAINER_SOURCE_PATH/firstboot $CONTAINER_BUILDROOT
- chmod 755 $CONTAINER_BUILDROOT/firstboot/*.sh
- for SCRIPT in $CONTAINER_BUILDROOT/firstboot/*.sh
+ cp --archive $CONTAINER_SOURCE_PATH/firstboot $CONTAINER_ROOTFS
+ chmod 755 $CONTAINER_ROOTFS/firstboot/*.sh
+ for SCRIPT in $CONTAINER_ROOTFS/firstboot/*.sh
do
- FIRSTBOOT_SCRIPT=$(echo $SCRIPT | sed "s|^$CONTAINER_BUILDROOT||")
+ FIRSTBOOT_SCRIPT=$(echo $SCRIPT | sed "s|^$CONTAINER_ROOTFS||")
echo lxc-attach --name=$CONTAINER_NAME -- $FIRSTBOOT_SCRIPT
lxc-attach --name=$CONTAINER_NAME -- $FIRSTBOOT_SCRIPT
done