Bug Report: DreamForge declares dream-network as external; base compose defines same network inline — inconsistent network convention
Severity: Low
Category: Docker Compose
Platform: All
Confidence: Confirmed (static inspection + runtime network ID check)
Description
The DreamForge extension's compose.yaml fragment declares networks: dream-network: external: true, while the base compose declares networks: default: name: dream-network. At runtime the two resolve to the same Docker network (confirmed: all 11 containers share NetworkID 4b46b077...2fc0b). No functional bug today — but:
- Inconsistent convention inside the repo.
- Standalone
docker compose -f dreamforge/compose.yaml up fails with "network dream-network declared as external, but could not be found."
- Future changes to compose merge semantics or network naming may break this fragment.
Affected File(s)
dream-server/extensions/services/dreamforge/compose.yaml (networks: block at bottom)
dream-server/docker-compose.base.yml (networks: default: name: dream-network)
Root Cause
The dreamforge fragment was written with the assumption that the network is pre-provisioned (external), inconsistent with the rest of the repo's pattern where the base compose owns the network.
Evidence
DreamForge fragment:
# dream-server/extensions/services/dreamforge/compose.yaml
networks:
dream-network:
external: true
Base:
# dream-server/docker-compose.base.yml
networks:
default:
name: dream-network
Runtime:
$ docker inspect --format '{{.NetworkSettings.Networks.dream-network.NetworkID}}' $(docker ps -q) | sort -u
4b46b077a6b04f335676a52ead0e0498e73153443f0fa6f55693339dbcc2fc0b
# All 11 containers share one network — merge works.
Standalone failure:
$ docker compose -f dream-server/extensions/services/dreamforge/compose.yaml up -d
network dream-network declared as external, but could not be found
Platform Analysis
- macOS / Linux / Windows: identical compose behavior.
Reproduction
See standalone-failure example above.
Impact
- Not a functional bug in the current merged stack.
- Maintenance / convention confusion.
- Risks silent breakage if compose merge semantics change or if a future change to the base removes/renames the default network.
Suggested Approach
Remove the networks: block from dreamforge/compose.yaml entirely. Docker Compose will join the project's default network automatically, consistent with every other extension in this repo. Verify the rest of the extensions follow this pattern (grep should show no other external: true network declarations in extensions/services/*/compose.yaml).
Discovery
Found during 23APR audit. Pre-existing on upstream/main d5154c37 — not a regression from the 12-PR merge batch.
Labels: bug, docker, compose, convention, pre-existing
Bug Report: DreamForge declares
dream-networkas external; base compose defines same network inline — inconsistent network conventionSeverity: Low
Category: Docker Compose
Platform: All
Confidence: Confirmed (static inspection + runtime network ID check)
Description
The DreamForge extension's
compose.yamlfragment declaresnetworks: dream-network: external: true, while the base compose declaresnetworks: default: name: dream-network. At runtime the two resolve to the same Docker network (confirmed: all 11 containers share NetworkID4b46b077...2fc0b). No functional bug today — but:docker compose -f dreamforge/compose.yaml upfails with "network dream-network declared as external, but could not be found."Affected File(s)
dream-server/extensions/services/dreamforge/compose.yaml(networks:block at bottom)dream-server/docker-compose.base.yml(networks: default: name: dream-network)Root Cause
The dreamforge fragment was written with the assumption that the network is pre-provisioned (external), inconsistent with the rest of the repo's pattern where the base compose owns the network.
Evidence
DreamForge fragment:
Base:
Runtime:
Standalone failure:
Platform Analysis
Reproduction
See standalone-failure example above.
Impact
Suggested Approach
Remove the
networks:block fromdreamforge/compose.yamlentirely. Docker Compose will join the project's default network automatically, consistent with every other extension in this repo. Verify the rest of the extensions follow this pattern (grep should show no otherexternal: truenetwork declarations inextensions/services/*/compose.yaml).Discovery
Found during 23APR audit. Pre-existing on
upstream/main d5154c37— not a regression from the 12-PR merge batch.Labels: bug, docker, compose, convention, pre-existing