diff --git a/Makefile b/Makefile index 26fc6f4e45e..2ba768b3968 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,8 @@ binaries: clean \ _output/bin/lima \ _output/bin/limactl \ _output/bin/nerdctl.lima \ + _output/bin/docker.lima \ + _output/bin/podman.lima \ _output/share/lima/lima-guestagent.Linux-x86_64 \ _output/share/lima/lima-guestagent.Linux-aarch64 \ _output/share/lima/lima-guestagent.Linux-riscv64 @@ -40,6 +42,14 @@ _output/bin/nerdctl.lima: mkdir -p _output/bin cp -a ./cmd/nerdctl.lima $@ +_output/bin/docker.lima: ./cmd/docker.lima + @mkdir -p _output/bin + cp -a $^ $@ + +_output/bin/podman.lima: ./cmd/podman.lima + @mkdir -p _output/bin + cp -a $^ $@ + .PHONY: _output/bin/limactl _output/bin/limactl: # The hostagent must be compiled with CGO_ENABLED=1 so that net.LookupIP() in the DNS server diff --git a/cmd/docker.lima b/cmd/docker.lima new file mode 100755 index 00000000000..5f79ca5ff51 --- /dev/null +++ b/cmd/docker.lima @@ -0,0 +1,18 @@ +#!/bin/sh +set -eu +: "${LIMA_INSTANCE:=docker}" +: "${DOCKER:=docker}" + +if [ "$(limactl ls -q "$LIMA_INSTANCE" 2>/dev/null)" != "$LIMA_INSTANCE" ]; then + echo "instance \"$LIMA_INSTANCE\" does not exist, run \`limactl start --name=$LIMA_INSTANCE template://docker\` to create a new instance" >&2 + exit 1 +fi +DOCKER=$(command -v "$DOCKER" || true) +if [ -n "$DOCKER" ]; then + DOCKER_HOST=$(limactl list "$LIMA_INSTANCE" --format 'unix://{{.Dir}}/sock/docker.sock') + export DOCKER_HOST + exec "$DOCKER" "$@" +else + export LIMA_INSTANCE + exec lima docker "$@" +fi diff --git a/cmd/podman.lima b/cmd/podman.lima new file mode 100755 index 00000000000..a5dfed85b44 --- /dev/null +++ b/cmd/podman.lima @@ -0,0 +1,18 @@ +#!/bin/sh +set -eu +: "${LIMA_INSTANCE:=podman}" +: "${PODMAN:=podman}" + +if [ "$(limactl ls -q "$LIMA_INSTANCE" 2>/dev/null)" != "$LIMA_INSTANCE" ]; then + echo "instance \"$LIMA_INSTANCE\" does not exist, run \`limactl start --name=$LIMA_INSTANCE template://podman\` to create a new instance" >&2 + exit 1 +fi +PODMAN=$(command -v "$PODMAN" || true) +if [ -n "$PODMAN" ]; then + CONTAINER_HOST=$(limactl list "$LIMA_INSTANCE" --format 'unix://{{.Dir}}/sock/podman.sock') + export CONTAINER_HOST + exec "$PODMAN" --remote "$@" +else + export LIMA_INSTANCE + exec lima podman "$@" +fi