diff --git a/templates/podman-ubuntu-lts.yaml b/templates/podman-ubuntu-lts.yaml new file mode 100644 index 00000000000..ffb45b0b519 --- /dev/null +++ b/templates/podman-ubuntu-lts.yaml @@ -0,0 +1,54 @@ +# A template to use Podman on Ubuntu instead of containerd & nerdctl +# $ limactl start ./podman-ubuntu-lts.yaml +# $ limactl shell podman podman run -it -v $HOME:$HOME --rm docker.io/library/alpine + +# To run `podman` on the host (assumes podman-remote is installed): +# $ export CONTAINER_HOST=$(limactl list podman --format 'unix://{{.Dir}}/sock/podman.sock') +# $ podman --remote ... + +# To run `docker` on the host (assumes docker-cli is installed): +# $ export DOCKER_HOST=$(limactl list podman --format 'unix://{{.Dir}}/sock/podman.sock') +# $ docker ... + +minimumLimaVersion: 1.1.0 + +base: +- template://_images/ubuntu-lts +- template://_default/mounts + +containerd: + system: false + user: false +provision: +- mode: system + script: | + #!/bin/bash + set -eux -o pipefail + command -v podman >/dev/null 2>&1 && test -e /etc/lima-podman && exit 0 + export DEBIAN_FRONTEND=noninteractive + apt-get update + apt-get install -y podman && touch /etc/lima-podman +- mode: user + script: | + #!/bin/bash + set -eux -o pipefail + systemctl --user enable --now podman.socket +probes: +- script: | + #!/bin/bash + set -eux -o pipefail + if ! timeout 30s bash -c "until command -v podman >/dev/null 2>&1; do sleep 3; done"; then + echo >&2 "podman is not installed yet" + exit 1 + fi + hint: See "/var/log/cloud-init-output.log" in the guest +portForwards: +- guestSocket: '/run/user/{{.UID}}/podman/podman.sock' + hostSocket: '{{.Dir}}/sock/podman.sock' +message: | + To run `podman` on the host (assumes podman-remote is installed), run the following commands: + ------ + podman system connection add lima-{{.Name}} "unix://{{.Dir}}/sock/podman.sock" + podman system connection default lima-{{.Name}} + podman{{if eq .HostOS "linux"}} --remote{{end}} run quay.io/podman/hello + ------