douglascamata / setup-docker-macos-action

A Github Action to setup Docker on macOS runners.
MIT License
29 stars 9 forks source link
colima docker github github-actions homebrew lima-vm macos

Setup Docker on macOS action .github/workflows/test.yml

This action installs Docker on a macOS runner through Colima, Lima-VM, and Homebrew.

I intend this action to be kept as simple as possible:

Currently supported public runner images

ARM64 processors (M1, M2, M3 series) used on macos-14 images are unsupported!

[!WARNING] Apple is adding support for nested virtualization on M3 processors and beyond on macOS 15 (see Apple Developer docs). This action will be updated to support it as soon as Github starts to update the runners accordingly.

Yes, exactly what you just read. These processors do not support nested virtualization. This means Colima can't start the VM to run Docker.

For the M1 processor there is no hope. It lacks the hardware support for this.

The M2 and M3 processors have such hardware support, but no software support from Apple's Hypervisor framework (so no hopes for QEMU) or Virtualization framework (alternative to QEMU).

I'm sorry, but there's nothing I can do about it. All we can do is wait. If I miss the announcement of nested virtualization support, please open an issue.

Features

Inputs

inputs.upgrade-qemu (defaults to "false")

The action, by default, will not try to upgrade QEMU if it's already installed. The reason is that installing QEMU takes a considerable amount of time.

If this is set to "true", the action will attempt an upgrade of QEMU to the latest version available in Homebrew.

inputs.lima (defaults to "latest")

The version of Lima to install. This can be any valid version from Lima releases page

inputs.colima (defaults to "latest")

The version of Colima to install. This can be any valid version from Colima releases page

inputs.colima-network-address (defaults to "false")

Starts Colima with a reachable network address through passing --network-address to the colima start command. Startup will be slower.

Outputs

colima-version

The version of Colima that was installed.

docker-client-version

The version of the Docker client that was installed.

docker-compose-version

The version of Docker Compose that was installed.