Skip to content

dreamforge compose.yaml declares dream-network as external; base defines same network inline — inconsistent convention #424

@yasinBursali

Description

@yasinBursali

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions