diff options
author | Daniel Baumann <daniel.baumann@open-infrastructure.net> | 2016-07-17 16:14:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@open-infrastructure.net> | 2016-08-04 13:35:54 +0000 |
commit | 4198d07804f17b99f811a1a3e8ec18ad24172f16 (patch) | |
tree | f3741d448459b895dab66b5bef1e6b5682e7fe14 /lib/container/start | |
parent | Changing container-status command to always show full output. (diff) | |
download | compute-tools-4198d07804f17b99f811a1a3e8ec18ad24172f16.tar.xz compute-tools-4198d07804f17b99f811a1a3e8ec18ad24172f16.zip |
Adding host system based overlay mounts.
Signed-off-by: Daniel Baumann <daniel.baumann@open-infrastructure.net>
Diffstat (limited to 'lib/container/start')
-rwxr-xr-x | lib/container/start | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/container/start b/lib/container/start index a4dc033..d5bbbf4 100755 --- a/lib/container/start +++ b/lib/container/start @@ -139,6 +139,31 @@ esac # config if [ -e "${CONFIG}/${NAME}.conf" ] then + CNT_OVERLAY="$(awk -F= '/^cnt.overlay=/ { print $2 }' ${CONFIG}/${NAME}.conf)" + + if [ -n "${CNT_OVERLAY}" ] + then + CNT_OVERLAYS="$(echo ${CNT_OVERLAY} | sed -e 's|;| |g')" + + for CNT_OVERLAY in ${CNT_OVERLAYS} + do + DIRECTORY_LOWER="$(echo ${CNT_OVERLAY} | awk -F: '{ print $1 }')" + DIRECTORY_UPPER="$(echo ${CNT_OVERLAY} | awk -F: '{ print $2 }')" + DIRECTORY_WORK="$(echo ${CNT_OVERLAY} | awk -F: '{ print $3 }')" + DIRECTORY_MERGED="$(echo ${CNT_OVERLAY} | awk -F: '{ print $4 }')" + + for DIRECTORY in "${DIRECTORY_LOWER}" "${DIRECTORY_UPPER}" "${DIRECTORY_WORK}" "${DIRECTORY_MERGED}" + do + mkdir -p "${DIRECTORY}" + done + + if ! findmnt -n -o SOURCE "${DIRECTORY_MERGED}" | grep -qs '^cnt.overlay-' + then + mount cnt.overlay-${NAME} -t overlay -olowerdir="${DIRECTORY_LOWER}",upperdir="${DIRECTORY_UPPER}",workdir="${DIRECTORY_WORK}",default_permissions "${DIRECTORY_MERGED}" + fi + done + fi + BIND="$(awk -F= '/^bind=/ { print $2 }' ${CONFIG}/${NAME}.conf)" if [ -n "${BIND}" ] |