Skip to content

feat: add apple-container runtime support#4959

Closed
jsj wants to merge 2 commits intosupabase:developfrom
jsj:jsj/apple-containers
Closed

feat: add apple-container runtime support#4959
jsj wants to merge 2 commits intosupabase:developfrom
jsj:jsj/apple-containers

Conversation

@jsj
Copy link
Copy Markdown
Contributor

@jsj jsj commented Mar 16, 2026

Summary

Add apple-container as an alternative runtime for Supabase CLI-managed services, with analytics support.

Docker remains the default runtime. When apple-container is selected, the CLI uses Apple Containers for service lifecycle operations while preserving existing Docker behavior.

What changed

  • add runtime selection via config and --runtime
  • add runtime-aware container, volume, network, log, exec, and health abstractions
  • add Apple container lifecycle support across start, stop, status, db start, db reset, and functions serve
  • add analytics support on apple-container
  • add an Apple-specific Vector ingestion path using host-side JSONL log forwarding
  • add focused tests for runtime selection, lifecycle behavior, analytics forwarding, and Apple-specific service handling
  • add docs for runtime selection and status output

Notes

  • the main use case today is local development, but the runtime support is not limited to that environment
  • Docker behavior is unchanged
  • analytics on apple-container uses file-backed log ingestion instead of Docker log sources
  • the earlier branch note that Vector remained disabled on Apple is outdated; the current branch includes Apple runtime analytics support and targeted coverage for it

Validation

go test ./internal/utils ./internal/start ./internal/status ./internal/stop ./internal/db/start ./internal/db/reset ./internal/functions/serve

Commit structure

  1. feat: add apple-container runtime support
  2. feat: support analytics on apple-container runtime

jsj added 2 commits March 16, 2026 12:51
Add Apple Containers as an alternative runtime for Supabase CLI-managed services.

Docker remains the default runtime, while apple-container can be selected anywhere the CLI manages the service lifecycle.

The primary use case today is local development, but the runtime abstraction is not limited to that environment.
Enable the analytics stack when services run on the apple-container runtime.

This adds an Apple-specific log ingestion path for Vector by forwarding container logs to host-side JSONL files and configuring Vector to read those files instead of Docker's log source.

Docker behavior remains unchanged.
@jsj jsj requested a review from a team as a code owner March 16, 2026 16:54
@jsj jsj closed this Mar 16, 2026
@coveralls
Copy link
Copy Markdown

Pull Request Test Coverage Report for Build 23155552224

Details

  • 828 of 1659 (49.91%) changed or added relevant lines in 15 files are covered.
  • 9 unchanged lines in 3 files lost coverage.
  • Overall coverage decreased (-1.9%) to 59.956%

Changes Missing Coverage Covered Lines Changed/Added Lines %
internal/utils/flags/config_path.go 4 6 66.67%
cmd/root.go 0 3 0.0%
internal/db/start/start.go 21 24 87.5%
internal/utils/misc.go 7 10 70.0%
internal/utils/config.go 17 22 77.27%
internal/status/status.go 59 69 85.51%
cmd/apple_log_forwarder.go 0 11 0.0%
internal/stop/stop.go 7 19 36.84%
internal/db/reset/reset.go 40 63 63.49%
internal/utils/apple_analytics.go 82 178 46.07%
Files with Coverage Reduction New Missed Lines %
internal/start/start.go 1 64.91%
internal/debug/postgres.go 3 66.09%
internal/utils/git.go 5 57.14%
Totals Coverage Status
Change from base Build 23149550253: -1.9%
Covered Lines: 8449
Relevant Lines: 14092

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants