To build the Containerization package, your system needs either:
- macOS 15 or newer and Xcode 17 beta.
- macOS 16 Developer Preview.
Build container and the background services from source, and run basic and integration tests:
make all test integrationCopy the binaries to /usr/local/bin and /usr/local/libexec (requires entering the an administrator password):
make installcontainer uses gRPC to communicate to the builder virtual machine that creates images from Dockerfiles, and depends on specific versions of grpc-swift and swift-protobuf. If you make changes to the gRPC APIs in the container-builder-shim project, install the tools and re-generate the gRPC code in this project using:
make protosTo make changes to container that require changes to the Containerization project, or vice versa:
-
Clone the Containerization repository such that it sits next to your clone of the
containerrepository. -
In your development shell, go to the
containerproject directory.cd container -
If the application services are already running, stop them.
bin/container system stop -
Configure the environment variable
CONTAINERIZATION_PATHto refer to your Containerization project, and update yourPackage.resolvedfile.export CONTAINERIZATION_PATH=../containerization swift package update containerization -
Build the init filesystem for your local copy of containerization.
(cd ../swiftcontainerization && make clean all) -
Build
container.make clean all -
Start the application services.
bin/container system start
To revert to using the Containerization dependency from your Package.swift:
-
Unset your
CONTAINERIZATION_PATHenvironment variable, and updatePackage.resolved.unset CONTAINERIZATION_PATH swift package update containerization -
Rebuild
container.make clean all -
Restart application services.
bin/container system restart