fix(infra): attach docker-compose.infra.yml services to molecule-monorepo-net

Closes partially #15 (network-split side of the same incident class).

Running `docker compose -f docker-compose.infra.yml up -d` puts postgres,
redis, clickhouse, langfuse (and the new temporal service) on a fresh
`molecule-monorepo_default` bridge network, while the platform container
lives on `molecule-monorepo-net` (created by the root docker-compose.yml).
Platform then fails DNS on `postgres:5432` and crashes until the
operator manually `docker network connect`s each service.

Declare `molecule-monorepo-net` as the external default network for the
infra compose file so new services join it automatically.

Also adds temporal + temporal-ui services (closes the 'Temporal unavailable'
noise that every agent logs at startup) and exposes the UI on :8233.

Incident: 2026-04-13 — running `up -d temporal` recreated postgres into
the wrong network and took the platform + all 12 workspace agents offline
until networks were manually reconnected.
This commit is contained in:
rabbitblood 2026-04-13 18:10:41 -07:00
parent 26992d6ba9
commit 33c107f427

View File

@ -65,6 +65,37 @@ services:
timeout: 5s
retries: 10
temporal:
image: temporalio/auto-setup:1.25
depends_on:
postgres:
condition: service_healthy
environment:
DB: postgres12
DB_PORT: 5432
POSTGRES_USER: ${POSTGRES_USER:-dev}
POSTGRES_PWD: ${POSTGRES_PASSWORD:-dev}
POSTGRES_SEEDS: postgres
DBNAME: temporal
VISIBILITY_DBNAME: temporal_visibility
ports:
- "7233:7233"
healthcheck:
test: ["CMD", "tctl", "--address", "temporal:7233", "cluster", "health"]
interval: 10s
timeout: 5s
retries: 10
temporal-ui:
image: temporalio/ui:2.31.2
depends_on:
- temporal
environment:
TEMPORAL_ADDRESS: temporal:7233
TEMPORAL_CORS_ORIGINS: http://localhost:8233
ports:
- "8233:8080"
langfuse-web:
image: langfuse/langfuse:2
depends_on:
@ -84,6 +115,11 @@ services:
ports:
- "3001:3000"
networks:
default:
name: molecule-monorepo-net
external: true
volumes:
pgdata:
redisdata: