Skip to content

Instantly share code, notes, and snippets.

@igor-ramazanov
Created May 6, 2025 13:13
Show Gist options
  • Select an option

  • Save igor-ramazanov/930a10cc3f31af01eef026ad0238762f to your computer and use it in GitHub Desktop.

Select an option

Save igor-ramazanov/930a10cc3f31af01eef026ad0238762f to your computer and use it in GitHub Desktop.
A Nushell script to run systemd-nspawn containers from Docker images
#!/usr/bin/env -S nu --login --interactive
export def main [
image: string
] {
let name = $image | split row ':' | first
mkdir $name
cd $name
docker pull $image
let id = docker create --name $name $image true
let envs = docker inspect $name | from json | get 0.Config.Env | each {|it| $"--setenv=($it)"}
docker export $id --output $"($name).tar"
docker rm $name
tar --extract --file $"($name).tar"
rm -rf $"($name).tar"
sudo systemd-nspawn --ephemeral --machine $name --directory . ...$envs --private-users
cd ..
rm -rf $name
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment