Skip to content

refactor: separate core and optimizer images#580

Merged
frahlg merged 1 commit into
masterfrom
codex/modular-core-image
Jul 17, 2026
Merged

refactor: separate core and optimizer images#580
frahlg merged 1 commit into
masterfrom
codex/modular-core-image

Conversation

@frahlg

@frahlg frahlg commented Jul 17, 2026

Copy link
Copy Markdown
Member

Summary

  • remove Python/CVXPY and optimizer source from the official core image
  • run the static core binary on Alpine with only CA certificates, timezone data, Lua drivers and web assets
  • keep Python/CVXPY exclusively in Dockerfile.optimizer, reached through the existing Unix-socket contract with the Go fallback retained
  • build Go on BUILDPLATFORM and cross-compile for TARGETARCH instead of running the Go toolchain under QEMU
  • add a container-boundary regression test to make verify and the module-boundary CI job

Beta finding

The v1.2.0 beta correctly exposed a remaining architecture/performance bug: its optimizer image built in 1m43s, but the core image also rebuilt and embedded the optimizer and took 14m05s (13m14s in build/push alone). That candidate will not be promoted to stable.

Verification

  • make verify
  • make verify-all
  • cold local multiarch build (linux/amd64,linux/arm64) — ~33s
  • runtime container starts and passes the exact BusyBox-wget /api/health check
  • core image contains no Python or /opt/venv
  • ARM64 core image: 24.8 MB locally; old v1.2.0-beta.1 ARM64 manifest: ~257 MB compressed layers
  • Changesets proposes the next minor release

@frahlg
frahlg merged commit ca37bef into master Jul 17, 2026
10 checks passed
@frahlg
frahlg deleted the codex/modular-core-image branch July 17, 2026 14:14
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.

1 participant