summaryrefslogtreecommitdiffstats
path: root/core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc')
-rw-r--r--core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc46
1 files changed, 31 insertions, 15 deletions
diff --git a/core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc b/core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc
index 4751880a..75816cb4 100644
--- a/core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc
+++ b/core/modules/run-virt-docker/data/opt/openslx/vmchooser/plugins/docker/includes/init_user_context.inc
@@ -15,13 +15,19 @@ function process_container_meta()
build_context_method=$( jq -r '.build_context_method' "$CONFDIR/container_meta.json" )
if [[ "$build_context_method" == "0" ]]; then
writelog "+ container_build_context: dockerfile"
+ export CONTAINER_IMAGE_CONTEXT="DOCKERFILE"
export CONTAINER_BUILD_CONTEXT="$CONFDIR/"
elif [[ "$build_context_method" == "1" ]]; then
writelog "+ container_build_context: git url"
+ export CONTAINER_IMAGE_CONTEXT="GIT_REPO"
export CONTAINER_BUILD_CONTEXT=$( jq -r '.build_context_url' "$CONFDIR/container_meta.json" )
elif [[ "$build_context_method" == "2" ]]; then
writelog "+ pull public container"
+ export CONTAINER_IMAGE_CONTEXT="CONTAINER_REPO"
export CONTAINER_REPO_NAME=$( jq -r '.image_repo' "$CONFDIR/container_meta.json" )
+ elif [[ "$build_context_method" == "3" ]]; then
+ writelog "+ load docker archive"
+ export CONTAINER_IMAGE_CONTEXT="DOCKER_ARCHIVE"
else
writelog "+ no proper build_context_method!"
cleanexit 1
@@ -33,10 +39,8 @@ function setup_user_container_context()
{
mkdir -p "$USER_CONTAINER_CONTEXT"
# init user directory with scripts
- cp "$DOCKER_PLUGIN_DIR/docker-init" "$USER_CONTAINER_CONTEXT/"
cp "$DOCKER_PLUGIN_DIR/remount" "$USER_CONTAINER_CONTEXT/"
cp "$DOCKER_PLUGIN_DIR/.bwlp-user-conf" "$USER_CONTAINER_CONFIG"
- chmod u+x "$USER_CONTAINER_CONTEXT/docker-init"
chmod u+x "$USER_CONTAINER_CONTEXT/remount"
}
@@ -46,7 +50,6 @@ function setup_user_container_autostart()
# TODO: maybe there is a better way to load and start the container which is used in the current lecture
mkdir -p "$HOME/.config/autostart/"
cp -f "$DOCKER_PLUGIN_DIR/docker-init.desktop" "$HOME/.config/autostart/"
- sed -i "s:Exec=:Exec=$USER_CONTAINER_CONTEXT/docker-init:" "$HOME/.config/autostart/docker-init.desktop"
}
@@ -60,25 +63,38 @@ function init_user_container_config()
process_container_meta
writelog "+ init USER_CONTAINER_CONFIG: $USER_CONTAINER_CONFIG"
- sed -i "s#export DOCKER_PLUGIN_DIR=".*"#export DOCKER_PLUGIN_DIR=\"$DOCKER_PLUGIN_DIR\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export DOCKER_INCLUDE_DIR=".*"#export DOCKER_INCLUDE_DIR=\"$DOCKER_INCLUDE_DIR\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export TMPDIR=".*"#export TMPDIR=\"$TMPDIR\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export VM_DISKFILE_RO=".*"#export VM_DISKFILE_RO=\"$VM_DISKFILE_RO\"#" "$USER_CONTAINER_CONFIG"
+ echo "export DOCKER_PLUGIN_DIR=\"$DOCKER_PLUGIN_DIR\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export DOCKER_INCLUDE_DIR=\"$DOCKER_INCLUDE_DIR\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export TMPDIR=\"$TMPDIR\"" >> "$USER_CONTAINER_CONFIG"
- sed -i "s#export CONTAINER_REPO_NAME=".*"#export CONTAINER_REPO_NAME=\"$CONTAINER_REPO_NAME\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export CONTAINER_BUILD_CONTEXT=".*"#export CONTAINER_BUILD_CONTEXT=\"$CONTAINER_BUILD_CONTEXT\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export CONTAINER_IMAGE_NAME=".*"#export CONTAINER_IMAGE_NAME=\"$CONTAINER_IMAGE_NAME\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export CONTAINER_RUN_OPTIONS=".*"#export CONTAINER_RUN_OPTIONS=\"$CONTAINER_RUN_OPTIONS\"#" "$USER_CONTAINER_CONFIG"
- sed -i "s#export CONTAINER_RUN_COMMAND=".*"#export CONTAINER_RUN_COMMAND=\"$CONTAINER_RUN_COMMAND\"#" "$USER_CONTAINER_CONFIG"
+ echo "export VM_DISKFILE_RO=\"$VM_DISKFILE_RO\"" >> "$USER_CONTAINER_CONFIG"
+
+ echo "export CONTAINER_REPO_NAME=\"$CONTAINER_REPO_NAME\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export CONTAINER_BUILD_CONTEXT=\"$CONTAINER_BUILD_CONTEXT\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export CONTAINER_IMAGE_NAME=\"$CONTAINER_IMAGE_NAME\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export CONTAINER_RUN_OPTIONS=\"$CONTAINER_RUN_OPTIONS\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export CONTAINER_RUN_COMMAND=\"$CONTAINER_RUN_COMMAND\"" >> "$USER_CONTAINER_CONFIG"
+ echo "export CONTAINER_IMAGE_CONTEXT=\"$CONTAINER_IMAGE_CONTEXT\"" >> "$USER_CONTAINER_CONFIG"
+
+ # sed -i "s#export DOCKER_PLUGIN_DIR=".*"#export DOCKER_PLUGIN_DIR=\"$DOCKER_PLUGIN_DIR\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export DOCKER_INCLUDE_DIR=".*"#export DOCKER_INCLUDE_DIR=\"$DOCKER_INCLUDE_DIR\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export TMPDIR=".*"#export TMPDIR=\"$TMPDIR\"#" "$USER_CONTAINER_CONFIG"
+
+ # sed -i "s#export VM_DISKFILE_RO=".*"#export VM_DISKFILE_RO=\"$VM_DISKFILE_RO\"#" "$USER_CONTAINER_CONFIG"
+
+ # sed -i "s#export CONTAINER_REPO_NAME=".*"#export CONTAINER_REPO_NAME=\"$CONTAINER_REPO_NAME\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export CONTAINER_BUILD_CONTEXT=".*"#export CONTAINER_BUILD_CONTEXT=\"$CONTAINER_BUILD_CONTEXT\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export CONTAINER_IMAGE_NAME=".*"#export CONTAINER_IMAGE_NAME=\"$CONTAINER_IMAGE_NAME\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export CONTAINER_RUN_OPTIONS=".*"#export CONTAINER_RUN_OPTIONS=\"$CONTAINER_RUN_OPTIONS\"#" "$USER_CONTAINER_CONFIG"
+ # sed -i "s#export CONTAINER_RUN_COMMAND=".*"#export CONTAINER_RUN_COMMAND=\"$CONTAINER_RUN_COMMAND\"#" "$USER_CONTAINER_CONFIG"
local RUNSCRIPT="$CONFDIR/runscript"
# check if runscript file contains more than default line "ext=;visibility=1;soundMuted=-1"
if [[ "$( < "$RUNSCRIPT" wc -l )" -gt "1" ]]; then
- sed -i "s#export RUNSCRIPT=".*"#export RUNSCRIPT=\"$RUNSCRIPT\"#" "$USER_CONTAINER_CONFIG"
+ echo "export RUNSCRIPT=\"$RUNSCRIPT\"" >> "$USER_CONTAINER_CONFIG"
+ #sed -i "s#export RUNSCRIPT=".*"#export RUNSCRIPT=\"$RUNSCRIPT\"#" "$USER_CONTAINER_CONFIG"
fi
-
- sed -i "s#USER_CONTAINER_CONFIG=".*"#USER_CONTAINER_CONFIG=\"$USER_CONTAINER_CONFIG\"#" "$USER_CONTAINER_CONTEXT/docker-init"
}