first commit
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
# Apple Container Compose — Xcode macOS application (prototype)
|
||||
|
||||
A native SwiftUI macOS front end for Apple's `container` runtime. Includes a bundled Python Compose-style orchestration engine from the initial MVP.
|
||||
|
||||
## Requirements
|
||||
- Apple silicon Mac running macOS 26 or newer
|
||||
- Xcode 26 or newer
|
||||
- Apple's `container` CLI installed and configured
|
||||
- Python 3 with PyYAML available to the **python3** interpreter launched by the app
|
||||
- Internet access on first Xcode build to resolve the Yams Swift package
|
||||
|
||||
## Open and build
|
||||
1. Open `AppleContainerCompose.xcodeproj` in Xcode.
|
||||
2. Select the `AppleContainerCompose` scheme and `My Mac` destination.
|
||||
3. Build and run (Command-R).
|
||||
4. Click **Open YAML** and choose a Compose file (sample in `Examples/compose.yaml`).
|
||||
5. Use **Up**, **Down**, **Status**, **Logs**, **Restart**, **Pull Images**, or **Build Images**.
|
||||
|
||||
## Python dependency
|
||||
The bundled engine imports PyYAML. Install it for the Python interpreter available in your macOS app's PATH. For example, using Homebrew Python:
|
||||
|
||||
```sh
|
||||
brew install python
|
||||
/opt/homebrew/bin/python3 -m venv ~/.local/share/accompose-venv
|
||||
~/.local/share/accompose-venv/bin/pip install PyYAML
|
||||
```
|
||||
|
||||
The current app executes `python3` from PATH, not the venv automatically. Install PyYAML into that interpreter, or modify `executeEngine` to use `~/.local/share/accompose-venv/bin/python` (recommended for isolated dependencies).
|
||||
|
||||
## Current implementation scope
|
||||
- Native Xcode project with SwiftUI project browser, service summary, and command output
|
||||
- Compose YAML parsing for service listing using Yams
|
||||
- Bundled MVP engine: up/down, start/stop/restart, ps/logs, build/pull, state, dependencies, networks and volumes
|
||||
- App process runs without macOS sandbox because it invokes the host's container CLI
|
||||
|
||||
## Limitations
|
||||
This is a development prototype, not a fully native orchestration engine or production-grade Docker Compose replacement. Runtime integration is not tested on macOS here. The Python engine requires PyYAML; service status is currently based on project state; logs are batch output, not continuous streaming; health checks, advanced Compose compatibility, restart supervision, service scaling and secure secrets management remain future work. The UI's restart action restarts the whole project. Consult Apple's `container` version for supported CLI flags.
|
||||
Reference in New Issue
Block a user