# Prerequisites for Running apple/container: Complete Setup Guide

> Discover the essential prerequisites for running apple/container. Install macOS 13+, Swift 5.9, Xcode 15, Docker Desktop 4.0+, and command-line tools now.

- Repository: [Apple/container](https://github.com/apple/container)
- Tags: how-to-guide
- Published: 2026-06-27

---

**To build and run the apple/container Swift-based container runtime, you need macOS 13 (Ventura) or later, the Swift 5.9 toolchain, Xcode 15, Docker Desktop 4.0+, and standard command-line tools including git, make, and clang.**

The apple/container repository provides a Swift-based container runtime implementation designed specifically for macOS. Before compiling the source code or executing the runtime, you must satisfy specific system and toolchain prerequisites for running apple/container on your development workstation.

## System Requirements

### macOS Version Compatibility

The runtime relies on system-level APIs only available on recent macOS releases. You must run **macOS 13 (Ventura)** or later to execute the container runtime. Upgrade via the macOS Software Update dialog if your system runs an earlier version.

## Development Toolchain Prerequisites

### Swift 5.9 Toolchain

The project uses Swift Package Manager with a strict version requirement. The [`Package.swift`](https://github.com/apple/container/blob/main/Package.swift) file declares `swift-tools-version:5.9`, requiring the **Swift 5.9 toolchain** or newer. Install Xcode 15 to bundle the required toolchain, or download the standalone Swift toolchain from the Swift website.

### Xcode 15 or Later

While optional, **Xcode 15** is strongly recommended by the [`BUILDING.md`](https://github.com/apple/container/blob/main/BUILDING.md) documentation. It provides the compiler, debugging support, and build tools required for the Swift package and test suite. You can obtain it from the Mac App Store or the Apple Developer portal.

### Command-Line Tools

The build scripts in `scripts/` (including [`install-init.sh`](https://github.com/apple/container/blob/main/install-init.sh)) and the `Makefile` require standard Unix development tools. Install **git**, **make**, and **clang** via Xcode's Command Line Tools by running:

```bash
xcode-select --install

```

## Optional Dependencies

### Docker Desktop

Although the runtime runs natively on macOS, integration tests and Linux workload emulation require **Docker Desktop 4.0 or later**. The [`docs/how-to.md`](https://github.com/apple/container/blob/main/docs/how-to.md) file references Docker-based workflows for development and testing. Download Docker Desktop from the official Docker website.

### Homebrew

**Homebrew** simplifies the installation of auxiliary utilities such as `jq`, `swiftformat`, and bash scripts used in the repository's CI pipelines. While not strictly required, it streamlines environment setup.

## Code Signing Requirements

### Entitlement Files

When building the full container stack, you need specific entitlement files for signing Linux runtime binaries: `container-runtime-linux.entitlements` and `container-network-vmnet.entitlements`. These are located in the `signing/` directory. You only need a valid Apple developer certificate if you intend to sign the binaries for distribution.

## Verification Steps

### Building the Project

Once you satisfy all prerequisites, verify your setup by cloning and building the repository:

```bash

# Clone the repository (requires Git)

git clone https://github.com/apple/container.git
cd container

# Build the Swift package (uses Swift 5.9)

swift build -c release

# Run the test suite (requires Docker for integration tests)

swift test

```

### Docker Integration Test

To verify Docker functionality referenced in the examples:

```bash
docker build -t apple/container-example -f examples/container-machine-vscode/Dockerfile .
docker run --rm -it apple/container-example

```

## Summary

- **macOS 13 (Ventura)** or later is mandatory for system API compatibility.
- **Swift 5.9 toolchain** and **Xcode 15** provide the required build environment specified in [`Package.swift`](https://github.com/apple/container/blob/main/Package.swift).
- **Docker Desktop 4.0+** enables integration testing and Linux workload emulation.
- **Command-line tools** (git, make, clang) are required by [`scripts/install-init.sh`](https://github.com/apple/container/blob/main/scripts/install-init.sh) and the build system.
- Entitlement files in `signing/` support code signing for the Linux runtime when using an Apple developer certificate.

## Frequently Asked Questions

### Can I run apple/container on macOS 12 or earlier?

No. The runtime depends on system-level APIs introduced in macOS 13 (Ventura). According to the [`BUILDING.md`](https://github.com/apple/container/blob/main/BUILDING.md) documentation, earlier versions lack the necessary framework support for the container runtime.

### Do I need a paid Apple Developer account to build the project?

No. You can build and run the code without a developer certificate. However, if you wish to sign the binaries using the `container-runtime-linux.entitlements` and `container-network-vmnet.entitlements` files in the `signing/` directory, you need a valid Apple developer certificate.

### Is Docker Desktop required for basic functionality?

No. Docker Desktop is only required for running integration tests and emulating Linux-based workloads as described in [`docs/how-to.md`](https://github.com/apple/container/blob/main/docs/how-to.md). The core Swift runtime builds and runs natively on macOS without Docker.

### Can I use a standalone Swift toolchain instead of Xcode?

Yes. While Xcode 15 is recommended for its debugging tools and IDE support, you can install the standalone Swift 5.9 toolchain from the Swift website. Ensure it meets the `swift-tools-version:5.9` requirement specified in [`Package.swift`](https://github.com/apple/container/blob/main/Package.swift).