The Dockerfile's `mix release --overwrite` step failed because the
umbrella's root mix.exs lacked an explicit `releases:` block. Umbrella
projects cannot infer a default release — `mix release` requires the
operator to name which umbrella children go into each release and
their startup order.
Adds a single `:guildhall` release bundling all five umbrella apps as
:permanent, with startup order respecting the dep graph:
guildhall_ops_db (Repo — nothing else here starts without it)
guildhall_chronicle
guildhall_orchestrator
guildhall_graph_bridge
guildhall_web (HTTP endpoint last, after Repo + contexts)
Each app's own `in_umbrella` deps in apps/*/mix.exs will back-stop
the ordering via OTP's dependency graph regardless, but the explicit
list is clearer and matches standard Phoenix-umbrella release idiom.
Mistake was in the prior Dockerfile commit (c6f1d07) planning — the
Dockerfile comment claimed the release name could be inferred from
the umbrella, which is true for single-app projects but not umbrellas.
No Dockerfile change needed; the fix is entirely in mix.exs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Tyler J King <tking@guildhouse.dev>
42 lines
1.1 KiB
Elixir
42 lines
1.1 KiB
Elixir
defmodule Guildhall.MixProject do
|
|
use Mix.Project
|
|
|
|
def project do
|
|
[
|
|
apps_path: "apps",
|
|
version: "0.1.0",
|
|
start_permanent: Mix.env() == :prod,
|
|
deps: deps(),
|
|
releases: releases()
|
|
]
|
|
end
|
|
|
|
# Release configuration. Umbrella projects require an explicit
|
|
# `releases:` block — mix release cannot infer a default from the
|
|
# umbrella root because there is no single "application" to release.
|
|
# The `:guildhall` release bundles all five umbrella children in a
|
|
# startup order that respects the dep graph: ops_db first (the Repo
|
|
# other apps use), then infra apps, then the web endpoint last.
|
|
defp releases do
|
|
[
|
|
guildhall: [
|
|
applications: [
|
|
guildhall_ops_db: :permanent,
|
|
guildhall_chronicle: :permanent,
|
|
guildhall_orchestrator: :permanent,
|
|
guildhall_graph_bridge: :permanent,
|
|
guildhall_web: :permanent
|
|
]
|
|
]
|
|
]
|
|
end
|
|
|
|
# Dependencies listed here are available only for this
|
|
# project and cannot be accessed from applications inside
|
|
# the apps folder.
|
|
#
|
|
# Run "mix help deps" for examples and options.
|
|
defp deps do
|
|
[]
|
|
end
|
|
end
|