Skip to content

Execution providers

Execution providers run Hollywood's fast action executor or an official GitHub runner in a local Linux container.

hollywood run requires one provider:

  • docker.
  • podman.
  • container from Apple.

Hollywood does not detect a provider or use a different runtime when the selected provider is unavailable.

Provider matrix

Provider Runtime Supported host
docker Docker Engine or Docker Desktop A Linux, macOS, or Windows host that Docker supports.
podman Podman A Linux, macOS, or Windows host that Podman supports.
container Apple container Apple silicon with macOS 26 or later.

Docker VMM is a virtual machine manager for Docker Desktop on Apple silicon. Select --provider docker when Docker Desktop uses Docker VMM. Hollywood does not require a separate Docker VMM provider.

In fast action mode, each provider creates one container and mounts the repository at /github/workspace. Hollywood creates paths for GITHUB_ENV, GITHUB_EVENT_PATH, GITHUB_OUTPUT, GITHUB_PATH, GITHUB_STATE, and GITHUB_STEP_SUMMARY. It also sets GITHUB_WORKSPACE, HOME, RUNNER_TEMP, and selected runner environment variables.

The default image derives from GitHub's official, digest-pinned actions-runner image. The upstream image publishes native Linux amd64 and arm64 manifests. Hollywood supports those two image architectures.

hollywood run executes the bundled action directly with Node 24. This mode does not invoke Runner.Listener or Runner.Worker. It verifies the action bundle, selected userspace image, workspace mount, inputs, and configured file-command paths.

hollywood runner listen starts GitHub's official Runner.Listener with a JIT configuration. GitHub supplies one job message, and the listener starts the official Runner.Worker. This mode uses GitHub's scheduling, permissions, action lifecycle, cache and artifact services, OpenID Connect, logs, and job reporting. See Run a job with the GitHub runner.

The provider controls the kernel, cgroups, networking, mount implementation, and virtualization in both modes. GitHub controls the connected runner's job lifecycle. Neither mode reproduces the GitHub-hosted ubuntu-latest virtual machine.

Provider contract

Each provider must:

  • Create and remove one Linux container.
  • Execute a file with a structured argument array and no shell interpolation.
  • Mount the workspace and configured GitHub protocol files.
  • Report a missing executable as ContainerProviderUnavailableError.

See Runner image for the image contract, runner probe, and publication process.