docs: update skills to use Docker commands after runtime migration (#325)
All skills now reference Docker CLI instead of Apple Container CLI. Setup skill defaults to Docker with optional /convert-to-apple-container. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -43,40 +43,26 @@ Only ask the user for help if multiple retries fail with the same error.
|
||||
|
||||
### 3a. Choose runtime
|
||||
|
||||
Use the environment check results from step 1 to decide which runtime to use:
|
||||
Check the preflight results for `APPLE_CONTAINER` and `DOCKER`.
|
||||
|
||||
- PLATFORM=linux → Docker
|
||||
- PLATFORM=macos + APPLE_CONTAINER=installed → apple-container
|
||||
- PLATFORM=macos + DOCKER=running + APPLE_CONTAINER=not_found → Docker
|
||||
- PLATFORM=macos + DOCKER=installed_not_running → start Docker: `open -a Docker`. Wait 15s, re-check with `docker info`. If still not running, tell the user Docker is starting up and poll a few more times.
|
||||
- Neither available → AskUserQuestion: Apple Container (recommended for macOS) vs Docker?
|
||||
- Apple Container: tell user to download from https://github.com/apple/container/releases and install the .pkg. Wait for confirmation, then verify with `container --version`.
|
||||
- Docker on macOS: install via `brew install --cask docker`, then `open -a Docker` and wait for it to start. If brew not available, direct to Docker Desktop download.
|
||||
- Docker on Linux: install with `curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER`. Note: user may need to log out/in for group membership.
|
||||
**If APPLE_CONTAINER=installed** (macOS only): Ask the user which runtime they'd like to use — Docker (default, cross-platform) or Apple Container (native macOS). If they choose Apple Container, run `/convert-to-apple-container` now before continuing, then skip to 3b.
|
||||
|
||||
### 3b. Docker conversion gate (REQUIRED before building)
|
||||
**If APPLE_CONTAINER=not_found**: Use Docker (the default). Proceed to install/start Docker below.
|
||||
|
||||
**If the chosen runtime is Docker**, you MUST check whether the source code has already been converted from Apple Container to Docker. Do NOT skip this step. Run:
|
||||
### 3a-docker. Install Docker
|
||||
|
||||
```bash
|
||||
grep -q 'container system status' src/index.ts && echo "NEEDS_CONVERSION" || echo "ALREADY_CONVERTED"
|
||||
```
|
||||
- DOCKER=running → continue to 3b
|
||||
- DOCKER=installed_not_running → start Docker: `open -a Docker` (macOS) or `sudo systemctl start docker` (Linux). Wait 15s, re-check with `docker info`. If still not running, tell the user Docker is starting up and poll a few more times.
|
||||
- DOCKER=not_found → **ask the user for confirmation before installing.** Tell them Docker is required for running agents and ask if they'd like you to install it. If confirmed:
|
||||
- macOS: install via `brew install --cask docker`, then `open -a Docker` and wait for it to start. If brew not available, direct to Docker Desktop download at https://docker.com/products/docker-desktop
|
||||
- Linux: install with `curl -fsSL https://get.docker.com | sh && sudo usermod -aG docker $USER`. Note: user may need to log out/in for group membership.
|
||||
|
||||
Check these three files for Apple Container references:
|
||||
- `src/index.ts` — look for `container system status` or `ensureContainerSystemRunning`
|
||||
- `src/container-runner.ts` — look for `spawn('container'`
|
||||
- `container/build.sh` — look for `container build`
|
||||
|
||||
**If ANY of those Apple Container references exist**, the source code has NOT been converted. You MUST run the `/convert-to-docker` skill NOW, before proceeding to the build step. Do not attempt to build the container image until the conversion is complete.
|
||||
|
||||
**If none of those references exist** (i.e. the code already uses `docker info`, `spawn('docker'`, `docker build`), the conversion has already been done. Continue to 3c.
|
||||
|
||||
### 3c. Build and test
|
||||
### 3b. Build and test
|
||||
|
||||
Run `./.claude/skills/setup/scripts/03-setup-container.sh --runtime <chosen>` and parse the status block.
|
||||
|
||||
**If BUILD_OK=false:** Read `logs/setup.log` tail for the build error.
|
||||
- If it's a cache issue (stale layers): run `container builder stop && container builder rm && container builder start` (Apple Container) or `docker builder prune -f` (Docker), then retry.
|
||||
- If it's a cache issue (stale layers): run `docker builder prune -f`, then retry.
|
||||
- If Dockerfile syntax or missing files: diagnose from the log and fix.
|
||||
- Retry the build script after fixing.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user