| #!/bin/bash |
| |
| TOOLBOX_DOCKER_IMAGE=fedora |
| TOOLBOX_DOCKER_TAG=latest |
| TOOLBOX_USER=root |
| |
| toolboxrc="${HOME}"/.toolboxrc |
| |
| if [ -f "${toolboxrc}" ]; then |
| source "${toolboxrc}" |
| fi |
| |
| machinename=$(echo "${USER}-${TOOLBOX_DOCKER_IMAGE}-${TOOLBOX_DOCKER_TAG}" | sed -r 's/[^a-zA-Z0-9_.-]/_/g') |
| machinepath="/var/lib/toolbox/${machinename}" |
| |
| if [ ! -d ${machinepath} ] || systemctl is-failed ${machinename} ; then |
| sudo mkdir -p "${machinepath}" |
| sudo chown ${USER}: "${machinepath}" |
| |
| docker pull "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" |
| docker run --name=${machinename} "${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}" /bin/true |
| docker export ${machinename} | sudo tar -x -C "${machinepath}" -f - |
| docker rm ${machinename} |
| sudo touch "${machinepath}"/etc/os-release |
| fi |
| |
| sudo systemd-nspawn -D "${machinepath}" --share-system --bind=/:/media/root --bind=/usr:/media/root/usr --user="${TOOLBOX_USER}" "$@" |