initial commit
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
mkdir -p /run/nspawn-oci
|
||||
|
||||
skopeo_output=$(echo /run/nspawn-oci/$1 | sed s.://./.g)
|
||||
mkdir -p $skopeo_output
|
||||
skopeo copy $1 oci:$skopeo_output:latest
|
||||
|
||||
umoci_output=/run/nspawn-oci/$2
|
||||
rm -rf $umoci_output
|
||||
umoci --verbose unpack --image $skopeo_output $umoci_output
|
||||
|
||||
mkdir -p /etc/systemd/nspawn
|
||||
oci_config=$umoci_output/config.json
|
||||
nspawn_config=/etc/systemd/nspawn/$2.nspawn
|
||||
|
||||
cat << end > $nspawn_config
|
||||
[Exec]
|
||||
ProcessTwo=true
|
||||
end
|
||||
|
||||
for environment in $(jq --compact-output '.process.env' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g")
|
||||
do
|
||||
echo $environment
|
||||
cat << end >> $nspawn_config
|
||||
Environment=$environment
|
||||
end
|
||||
done
|
||||
|
||||
cat << end >> $nspawn_config
|
||||
WorkingDirectory=$(jq --compact-output '.process.cwd' $oci_config | sed "s/[][]//g;s/\"//g;s/,/ /g")
|
||||
Parameters=$(jq --compact-output '.process.args' $oci_config | sed "s/[][]//g;s/,/ /g")
|
||||
end
|
||||
|
||||
machinectl import-fs $umoci_output/rootfs $2
|
||||
echo "$2 created from $1. start/enable via systemd-nspawn@$2.service"
|
||||
Reference in New Issue
Block a user