Releases: apple/container
0.6.0
Highlights
IMPORTANT The fix for issue #416 changes the location of the image store for container from ~/Library/Application\ Support/com.apple.container/.build to ~/Library/Application\ Support/com.apple.container/builder. If you want to retain the content of your old store, stop container, move the old directory to the new pathname (replacing the .build directory if necessary), and start the application again. Or, you can delete the unused .build directory when you want to recover the storage capacity.
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
- Network
- Storage
Full Changelog: 0.4.1...0.5.0
What's Changed
- Removes "all rights reserved" from license header. by @jglogan in #711
- CLI: Fix env-file parsing by @dcantah in #707
- Remove StandardErrorPath and StandardOutPath from launchd plists by @katiewasnothere in #742
- Fix race condition in ContainersService.create() by @bismansahni in #721
- Fix broken proxy configuration for default kernel fetch. by @jglogan in #747
- Moves
.builddirectory tobuilder. by @jglogan in #749 - make: add coverage target by @egernst in #685
- Support --subnet in network create by @siikamiika in #737
- Add image env variables to builder start command by @katiewasnothere in #756
- Add app bundle Info.plist as a system property source. by @jglogan in #764
- Add support for anonymous volumes by @realrajaryan in #768
- Implicitly create named volumes by @realrajaryan in #769
- Update make-docs.sh to prevent HTML errors by @GenkaOk in #771
- [container-system-dns-ls]: add --format and --quiet options by @saehejkang in #720
- added the new workflow that automatically puts the labels in PR by @Ronitsabhaya75 in #741
- Revert "added the new workflow that automatically puts the labels in PR" by @katiewasnothere in #776
- chore: restrict GitHub workflow permissions - future-proof by @incertum in #781
- [container-run-create]: add support for --network none by @saehejkang in #739
- add support for multiple --tag flags in build by @realrajaryan in #785
- Integration: Fix image inspect error message by @dcantah in #795
- Deps: Bump Containerization to 0.11.0 by @dcantah in #796
- Make container start idempotent by @dcantah in #792
- add volume prune command by @realrajaryan in #783
- Raise createEndpoint response timeout by @dcantah in #797
- [command-reference]: Document what "auto" means in container run by @saehejkang in #765
- Bump Containerization to 0.12.0. by @jglogan in #802
- Dns: Fix delete error message by @dcantah in #803
- CZ 0.12.1 - pick up relay fixes, other goodies. by @jglogan in #804
- Use a consistent capitalization in log and error messages by @dkovba in #806
- Lowercase stdin, stdout, stderr by @dkovba in #807
- Build: Fallback to Containerfile if Dockerfile not found by @dcantah in #812
- Propagate host ssh socket permissions to relay socket in guest. by @jglogan in #811
New Contributors
- @bismansahni made their first contribution in #721
- @siikamiika made their first contribution in #737
- @GenkaOk made their first contribution in #771
- @saehejkang made their first contribution in #720
- @Ronitsabhaya75 made their first contribution in #741
- @incertum made their first contribution in #781
Full Changelog: 0.5.0...0.6.0
0.5.0
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
- ⌨️ Remove
imagesalias forcontainer image. - ⌨️
container system propertycommands for managing settings. - ⌨️ Use com.apple.container.registry as keychain ID.. You will need to perform
container registry loginagain for your registries to establish new keychain entries. You can delete the oldcom.apple.containerkeychain entries using the Keychain Access tool. - 👩💻 Expose
ContainerCommandsfor external use. - 👩💻 Use APIServer for sandbox management operations.. This PR includes significant changes to the ContainerClient API.
container image savecan save multiple images.- Revert inadvertent pull platform filtering. Note that this will cause image pull times to be longer for now, as observed in the original issue.
- Cleaned up help output for commands.
- ⌨️ Remove
- Network
- Storage
Full Changelog: 0.4.1...0.5.0
What's Changed
- Create command-reference.md by @wlan0 in #445
- Uninstaller: call usage if incorrect number of options are provided by @katiewasnothere in #556
- Fix relative path bind mounts regression by @realrajaryan in #572
- Support following symlinks in tar when setting default kernel by @katiewasnothere in #575
- Add force option to kernel set and add tests for kernel setting by @katiewasnothere in #579
- Allow kernel set with tar to use relative paths to tar file by @katiewasnothere in #582
- Remove description field in PR template by @katiewasnothere in #583
- DefaultCommand signal behavior improvements for plugins by @mazdak in #570
- Package.swift: Bump CZ to 0.7.0 by @dcantah in #584
- Make "Plugin not found" message more descriptive by @mazdak in #569
- Adds multiple image save to tarfile. by @jglogan in #560
- Add a build parameter to handle warnings as errors by @dkovba in #591
- Remove images alias for image subcommand. by @jglogan in #597
- Docs: Update upgrade process in
README.md. by @jglogan in #595 - Pass DNS integration tests when default domain is set. by @jglogan in #594
- Revert inadvertent pull platform filtering from #545. by @jglogan in #593
- Remove per-target concurrency checking by @dkovba in #601
- Use containerization 0.7.1. by @jglogan in #606
- Update builder shim version to 0.6.1 to support default global args by @katiewasnothere in #605
- Bump containerization dependency to 0.7.2. by @jglogan in #610
- Add
--labelsfor networks. by @jglogan in #600 - Relocates API server to Helpers, service to Services. by @jglogan in #616
- Enumerate using relative paths to avoid mismatch with symlink resolution of special paths like /tmp by @katiewasnothere in #613
- Replace scattered defaults subcommands with
system property. by @jglogan in #604 - Use a lock consistently in the
ExecutionContextclass by @dkovba in #619 - Fix failing network tests by @dkovba in #620
- Expose Command Structs for Plugins by @Mcrich23 in #603
- Rename CLI and ExecutableCLI folders by @Mcrich23 in #635
- Bump CZ to 0.8.0 by @dcantah in #648
- SandboxService: Turn off RunAtLoad for the default plugin by @dcantah in #649
- CLI: Skip stopping containers in system stop if APIServer is down by @dcantah in #650
- Use com.apple.container.registry as keychain ID. by @jglogan in #652
- Swap to APIServer for all communications by @dcantah in #628
- Remove Native Builder from the
mainbranch by @dkovba in #634 - Clarify memory units in help and documentation. by @jglogan in #657
- Cleans up system subcommand options. by @jglogan in #662
- Cleans up network and volume subcommands. by @jglogan in #661
- Cleans up build subcommand options. by @jglogan in #658
- Cleans up registry subcommand options. by @jglogan in #660
- ClientContainer: Remove response timeout from
stopby @dcantah in #667 - Cleans up option groups, container subcommand help. by @jglogan in #647
- Add and use
container-apiserver start. by @jglogan in #655 - Add and use
container-runtime-linux start. by @jglogan in #654 - Cleans up image subcommand options. by @jglogan in #659
- Bumps containerization to 0.8.1. by @jglogan in #674
- Fix regression - removed shutdown XPC inadvertently. by @jglogan in #675
- Add warning note on finding docs for release versions by @katiewasnothere in #676
- Adds a plain stderr log handler. by @jglogan in #680
- Relocate ProcessIO to ContainerClient. by @jglogan in #681
- Fix races in the
SandboxServiceactor due to reentrancy afterawaitcalls by @dkovba in #684 - Update an issue template by @dkovba in #694
- Updates containerization to 0.9.1. by @jglogan in #697
- Remove references to macOS 26 beta. by @jglogan in #702
- Update license headers in C files by @dkovba in #693
New Contributors
Full Changelog: 0.4.1...0.5.0
0.4.1
More fixes and features in the August release...thank you for all of the contributions!
The most notable feature in this release are named volumes (container volume create). One difference between named volumes in container and in other systems is that you can't read-write a named volume across multiple running containers (VMs).
Why no 0.4.0? We had to discard that tag due to a couple test regressions.
Highlights
- Core
- Network
- Storage
- Plugins
What's Changed
- Add initial native builder code by @katiewasnothere in #399
- Transition to
Mutexby @dkovba in #364 - Optionally resolve wrapper index to single-platform manifest based on
com.apple.containerization.index.indirectannotation by @stevapple in #397 - Do not print task descriptions with disabled progress updates by @dkovba in #444
- Generate /etc/hosts by default by @dcantah in #423
- Native Builder: Add parser support for CMD and LABEL instructions by @katiewasnothere in #448
- Native builder: remove option token in favor of string literals by @katiewasnothere in #450
- Named Volumes by @realrajaryan in #362
- Select alternate data path with
container system start --app-root path. by @jglogan in #419 - Native builder parser support for EXPOSE by @katiewasnothere in #465
- Prevent removal of network with container references. by @jglogan in #470
- Relocate and rename
ClientDefaults. by @jglogan in #474 - Fixes for install root and plugin detection. by @jglogan in #467
- Clarify macOS version support and minor style tweaks by @timsneath in #485
- CLI (run): Only ask for stdin for -i by @dcantah in #483
- Native Builder: DiffKey and Differ Procol by @wlan0 in #482
- Native Builder: Define Snapshotter protocol by @wlan0 in #491
- Native Builder: Build Cache to use new snapshotter by @wlan0 in #492
- CLI: Defer tty reset immediately by @dcantah in #488
- Make Parser functions public for CLI plugins by @Reneechang17 in #494
- Fixes builder compiler errors and warnings. by @jglogan in #495
- Preserve permissions by default and fix warnings by @dkovba in #496
- Ensure two containers cannot use the same DNS hostname. by @jglogan in #490
- Add SSH auth socket forwarding by @Reneechang17 in #502
- Adds how-to section for
--ssh. by @jglogan in #503 - Adds
container builder rmalias. by @jglogan in #505 - Fix SSH forwarding for exec process by @Reneechang17 in #506
- Docs: clarify Xcode 26 beta must be the active developer directory by @unitof in #238
- Extract version output logic so
--versionis consistent. by @jglogan in #517 - Bump containerization dependency to 0.6.0 by @jglogan in #526
- Add the support for ARG in the native builder parser by @dkovba in #516
- Allow traversing symlink when checking for builtin plugins. by @jglogan in #528
- Fix a warning when testing by @dkovba in #531
- Bump CZ to 0.6.1 by @dcantah in #540
- Bump CZ to 0.6.2 by @dcantah in #543
- Integration: Log container bootlog in run test failures by @dcantah in #541
- ContainerService: Move force delete logic to daemon by @dcantah in #536
- ContainerService: Remove lock from list() by @dcantah in #537
- CLI: Send logs to stderr by @dcantah in #544
- Revert "Integration: Log container bootlog in run test failures (#541)" by @dcantah in #548
- Uniform support for
--platform,--os,--arch. by @jglogan in #545
New Contributors
- @stevapple made their first contribution in #397
- @timsneath made their first contribution in #485
- @unitof made their first contribution in #238
Full Changelog: 0.3.0...0.4.0
0.3.0
A big thank you to all contributors for your work to improve container!
Beginning with the 0.3.0 release, we're aiming to release on a monthly cycle. For now, each monthly release will increment the minor version. Should we need to create an off cycle patch release, we'll bump the patch version.
Highlights
- Core
- Network
- Builder
What's Changed
- Use a consistent capitalization in a bug report template by @dkovba in #269
- Adds next step link for building the project. by @jglogan in #278
- Docs for shell completion by @adityaramani in #275
- Add unpack strategy to SnapshotStore by @adityaramani in #274
- Use enum for ClientHealthCheck namespace by @eliseomartelli in #225
- Assigns default nameserver in sandbox service. by @jglogan in #276
- [Build] Disable rosetta during builds with a UserDefault by @wlan0 in #273
- Cleanups for CI by @adityaramani in #287
- [Build] update builder shim to 0.3.0 by @wlan0 in #288
- Fix build with local images test by @katiewasnothere in #285
- Updates SPI manifest to build on 6.2 only. by @jglogan in #297
- Mark SandboxSnapshot init as public for sandbox plugins by @ArnavReddy in #309
- Flush output when following logs. by @jglogan in #316
- ProcessIO: Don't error if stdin isn't a pty and !-i by @dcantah in #312
- Use
swift package editinstead ofCONTAINERIZATION_PATH. by @jglogan in #318 - fix typo in local package path for building by @Typ0genius in #327
- Handle when keychain query returns an unhandled error by @katiewasnothere in #331
- Use
Mutexfor thread-safe access to structs by @dkovba in #325 - Use the new
@SendablePropertyUncheckedmacro by @dkovba in #332 - Docs: Add macOS 15 container-to-container communication limitation note to the tutorial by @zdk in #328
- Use
{install-root}/libexec/container-pluginsfor plugins. by @jglogan in #341 - Add test for using previous stages as FROM source by @katiewasnothere in #342
- Make image details public by @Typ0genius in #335
- Quote paths in Makefile by @realrajaryan in #350
- Fix subcommand groups in top level help. by @jglogan in #351
- Adds TCP and UDP port forwarders. by @jglogan in #338
- [Build] fixes for tar output mode by @wlan0 in #353
- Fix broken link to tutorial.md by @sbehnke in #358
- Use wildcard IP for UDP backend local address. by @jglogan in #359
- Add cause string to error message sent with xpc by @katiewasnothere in #361
- CLI: Handle stdin stream if it's a regular file by @dcantah in #322
- Adds
--publishflag for forwarding traffic to container ports. by @jglogan in #352 - Applies feedback for PR #352. by @jglogan in #365
- add support for local build output by @wlan0 in #369
- Update xcode developer version to new symlink by @katiewasnothere in #374
- Clarified documentation by @sam-lord in #388
- Bump Containerization to 0.5.0 by @dcantah in #363
- Fix user arg passthrough for container create by @katiewasnothere in #393
- Explain how to install a release build in BUILDING.md by @justinyaodu in #379
- Add virtualization support for containers by @dcantah in #377
New Contributors
- @Typ0genius made their first contribution in #327
- @zdk made their first contribution in #328
- @realrajaryan made their first contribution in #350
- @sbehnke made their first contribution in #358
- @sam-lord made their first contribution in #388
- @justinyaodu made their first contribution in #379
Full Changelog: 0.2.0...0.3.0
0.2.0
This release includes a wide range of improvements across the repository. Thanks to all contributors for your work to improve container!
Highlights:
- Clean up spelling errors and temporary test logic after launch
- Improve documentation content and build process
- Github runners now build the project with swift 6.2 and Xcode 26 beta
- Add ability to add multiple network interfaces in single container (on MacOS 26) (see here)
- Add a new
container system statuscommand (see here) - Remove the
container system restartcommand (see here) - Add support for publishing sockets from container to host
What's Changed
- Fix small typo in README by @owenarthur in #56
- Fix typo in Parser.swift by @sadikkuzu in #64
- Publish docs from main by @katiewasnothere in #67
- Adds base path for GitHub Pages publishing. by @jglogan in #69
- Clean up typos in docs, fix reference to default subnet by @owenarthur in #71
- Add local docsite directory to .gitignore. by @jglogan in #73
- Remove use of REPO_READ token by @katiewasnothere in #124
- Append
.gitfordependenciesinPackage.swiftfor consistency. by @lamtrinhdev in #82 - Skip unpacking unsupported platforms by @adityaramani in #127
- Remove unused flags from registry login by @katiewasnothere in #128
- Add new
system statuscommand by @gonzolino in #118 - Update technical-overview.md doc with current code by @vadikgo in #86
- Add the option to disable progress updates on image CLI calls by @katiewasnothere in #146
- Removes build variable that is not needed after launch. by @jglogan in #151
- Remove trailing whitespace from GitHub workflows by @pstoeckle in #154
- Add issue templates for bugs and features by @katiewasnothere in #152
- Updated gitignore: .idea by @KeoFoxy in #138
- Update protos and add builder shim version in Package.swift by @katiewasnothere in #176
- Add missing link to repo CoC in issue template by @katiewasnothere in #157
- Remove temporary workaround for image auth to ghcr by @katiewasnothere in #155
- define JSONDecoder() outside of for loop in load() by @elijah-wright in #159
- fix: typo by @umitdemirci in #153
- Adds Swift Package Index crawler metadata. by @jglogan in #181
- Fix: consolidate UserDefaults service name by @yibozhuang in #161
- Improve accuracy of progress updates by @dkovba in #144
- container registry login host:port error fix by @makhov in #170
- Update issue templates by @dkovba in #184
- Add default year for hawkeye formatting by @katiewasnothere in #180
- Fix release workflow: tag regex, artifact validation, and token usage by @Thedarkmatter10 in #187
- Fix typos by @pstoeckle in #122
- README: Add project status by @dcantah in #192
- Remove the system restart command by @adityaramani in #196
- fix(common.yml): globalize CURRENT_SDK, improve shell safety and imp… by @Thedarkmatter10 in #178
- Remove editor specific git ignore rules by @katiewasnothere in #197
- refactor: fix typos by @noritaka1166 in #77
- Update the names of Xcode and macOS by @dkovba in #123
- Throw errors in ServiceManager by @eliseomartelli in #188
- Update to Swift 6.2 by @dkovba in #195
- Plugins: Remove unused devnull var by @dcantah in #214
- Spelling by @jsoref in #207
- use rotatingAllocator for ipam by @crosbymichael in #217
- Require having a Mac with Apple silicon and Xcode 26 beta by @dkovba in #125
- Make test suites run sequentially with respect to other test suites by @katiewasnothere in #200
- Wait for IO streams to complete before a process exits by @adityaramani in #198
- Fix warnings in
make docsby @dkovba in #220 - makefile: Change build_bin_dir to be lazily evaluated by @dcantah in #221
- Fix Race Condition in Container Removal (#130) by @ramsyana in #218
- provide suggestion if xpc 'Connection invalid' error encountered by @heywoodlh in #179
- Add socket publishing functionality by @Reneechang17 in #236
- limit build and test for runners to Apple repository by @heckj in #228
- Redirect to the documentation from the homepage by @dkovba in #245
- Fix typo in technical-overview.md by @johnspurlock in #253
- Remove
@unchecked Sendableby @dkovba in #250 - Regenerate documentation on
make docsby @dkovba in #246 - Add test that we replace meta args in builder correctly by @katiewasnothere in #255
- [Build] Do not use unbounded DispatchIO readers for tar tranfers by @wlan0 in #257
- Move github issues to use feature and bug Types instead of Labels by @katiewasnothere in #258
- Remove the support for
CURRENT_SDKby @dkovba in #251 - Improve error handling in answerHost by @eliseomartelli in #226
- Remove use of triage label by @katiewasnothere in #262
- Add version info to package installer by @katiewasnothere in #249
- Adds
container networkfor macOS 26. by @jglogan in #243
New Contributors
- @owenarthur made their first contribution in #56
- @sadikkuzu made their first contribution in #64
- @lamtrinhdev made their first contribution in #82
- @gonzolino made their first contribution in #118
- @vadikgo made their first contribution in #86
- @pstoeckle made their first contribution in #154
- @KeoFoxy made their first contribution in #138
- @elijah-wright made their first contribution in #159
- @umitdemirci made their first contribution in #153
- @yibozhuang made their first contribution in #161
- @makhov made their first contribution in #170
- @Thedarkmatter10 made their first contribution in #187
- @dcantah made their first contribution in #192
- @noritaka1166 made their first contribution in #77
- @eliseomartelli made their first contribution in #188
- @jsoref made their first contribution in #207
- @ramsyana made their first contribution in #218
- @heywoodlh made their first contribution in #179
- @Reneechang17 made their first contribution in #236
- @johnspurlock made their first contribution in #253
Full Changelog: 0.1.0...0.2.0
0.1.0
🎉 Initial release of container
container is a tool that you can use to create and run Linux containers as lightweight virtual machines on your Mac. It's written in Swift, and optimized for Apple silicon.
The tool consumes and produces OCI-compliant container images, so you can pull and run images from any standard container registry. You can push images that you build to those registries as well, and run the images in any other OCI-compliant application.
container uses the Containerization Swift package for low level container, image, and process management.