From d2cfe9ce5bb409472f10590aa1ae069b2a971a49 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Wed, 18 Mar 2020 15:34:46 +0100 Subject: [PATCH] LXC: add /.lxcenv Signed-off-by: Markus Heiser --- utils/lib.sh | 23 ++++++++++++++++++----- utils/lxc-searx.env | 1 + utils/lxc.sh | 6 ++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/utils/lib.sh b/utils/lib.sh index e13acca3e..e9bfc929f 100755 --- a/utils/lib.sh +++ b/utils/lib.sh @@ -1065,18 +1065,31 @@ EOF in_container() { # Test if shell runs in a container. # - # hint: Reads init process environment, therefore root access is required! - # # usage: in_container && echo "process running inside a LXC container" # in_container || echo "process is not running inside a LXC container" # - - sudo_or_exit + # sudo_or_exit + # hint: Reads init process environment, therefore root access is required! # to be safe, take a look at the environment of process 1 (/sbin/init) - grep -qa 'container=lxc' /proc/1/environ + # grep -qa 'container=lxc' /proc/1/environ + + # see lxc_init_container + [[ -f /.lxcenv ]] } +lxc_init_container() { + # Create a /.lxcenv file in the root folder. Call this once after container + # is inital started. + + # usage: lxc_create_root_dot_lxcenv + + info_msg "create /.lxcenv in container $1" + cat < || echo "container does not exists" diff --git a/utils/lxc-searx.env b/utils/lxc-searx.env index a5ef5712c..f81ee1c08 100644 --- a/utils/lxc-searx.env +++ b/utils/lxc-searx.env @@ -51,6 +51,7 @@ lxc_suite_prepare_buildhost() { ( lxc_set_suite_env export FORCE_TIMEOUT=0 + # "${LXC_REPO_ROOT}/utils/searx.sh* install packages "${LXC_REPO_ROOT}/utils/searx.sh" install buildhost rst_title "buildhost installation finished ($(hostname))" part echo diff --git a/utils/lxc.sh b/utils/lxc.sh index 64805272e..56450c4db 100755 --- a/utils/lxc.sh +++ b/utils/lxc.sh @@ -82,7 +82,7 @@ usage:: $_cmd [start|stop] [containers|] $_cmd show [info|config|suite|images] $_cmd cmd [--|] '...' - $_cmd install [suite] + $_cmd install [suite|buildhost] build :containers: build & launch all LXC containers of the suite @@ -443,10 +443,12 @@ lxc_boilerplate_containers() { boilerplate_script="${image_name}_boilerplate" boilerplate_script="${!boilerplate_script}" - info_msg "[${_BBlue}${container_name}${_creset}] install /.lxcenv.mk .." + info_msg "[${_BBlue}${container_name}${_creset}] init .." if lxc start -q "${container_name}" &>/dev/null; then sleep 5 # guest needs some time to come up and get an IP fi + lxc_init_container "${container_name}" + info_msg "[${_BBlue}${container_name}${_creset}] install /.lxcenv.mk .." cat <