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"
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/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/system/systemd-nspawn@$2.service.d/
|
||||||
|
override=/etc/systemd/system/systemd-nspawn@$2.service.d/override.conf
|
||||||
|
cat << end > $override
|
||||||
|
[Service]
|
||||||
|
ExecStart=systemd-nspawn --oci-bundle=/var/lib/machines/%i --machine %i
|
||||||
|
end
|
||||||
|
|
||||||
|
machinectl import-fs $umoci_output $2
|
||||||
|
echo "$2 created from $1. start/enable via systemd-nspawn@$2.service"
|
||||||
Reference in New Issue
Block a user