refactor(BA-7321): emit a conventional compose deployment from the DOCKER install mode - #13712
Conversation
…CKER install mode
|
Second commit (50f777a) addresses the two-compose-files finding from live testing: the deployment now runs as ONE compose project. Consequences wired in:
Live retest points on top of the previous list: single-project |
|
Third commit (bea28dc), after live testing showed two files still on disk and exposed a real bug: under Both fixed by merging instead of including:
Retest: single |
…vfroot, /var/lib, /tmp)
|
Fourth commit (7e01296): per review direction, the vfolder root moves to the fixed
Retest notes: fresh runs need no manual prep ( |
…rd docker-compose.yaml name
…ss, dropping host.docker.internal
Summary
Converges the DOCKER install mode onto the same deployment convention as a hand-written compose file, removing the installer-specific dialect (whole-directory mounts +
command:/working_diroverrides + all-host networking):/etc/backend.ai/*path and runs the image's default command. The manager's entrypoint therefore performs its designed keypair bootstrap, exchanging the RPC keypair through<install-dir>/fixturesmounted at/app/fixtures.manager-clione-off tool). The webserver, storage-proxy, and app-proxy trio move to the project bridge network with published ports matching the installer's fixed ServiceConfig ports. A new_fixup_bridge_service_addresses()rewrites their generated configs: outbound addresses (halfstack, manager API, coordinator API, default OTLP endpoint) →host.docker.internal(viaextra_hosts: host-gateway), bind addresses →0.0.0.0; announce/advertised addresses are untouched. The storage-proxy's working-dir-relative paths (vfolder root, TLS material, IPC dir) become absolute.user: "<uid>:<gid>"substituted at render time), matching PACKAGE-mode vfolder file ownership; its IPC dir moves under the pre-created, user-owned install tree.manager-cli(which also keepsworking_dirfor install-dir-relative CLI invocations likemgr generate-rpc-keypair fixtures/manager).configure_appproxy()now runs beforeinstall_appproxy_db()(adocker compose runagainst a service whose per-file mount source doesn't exist yet would make the daemon create a root-owned directory in its place), and the copiedalembic-appproxy.inigets alocalhost→host.docker.internalrewrite via a new base-class hook, since the schema one-off now runs on the bridge network.manager-cli.docker/README.md's DOCKER-mode contract and deployment-layout notes are updated to match.Needs live re-verification of the full DOCKER install flow on a Linux Docker host before undrafting (bridge reachability via host-gateway, appproxy schema one-off, keypair bootstrap via the manager entrypoint, storage-proxy as non-root) — folds into the BA-7270 E2E scope.
Merge order note: stacked on the bake CI PR — last PR of the BA-7264 chain; retarget to
mainafter the base PR merges.Part of the BA-7264 epic (#13582).