Files
stack/docker-compose.yml
T
marcieandorch-01 60bc5d2022
ci/woodpecker/push/publish Pipeline was successful
compose: pin MOSAIC_STORAGE_TIER=standalone (A5d formal-run fix) (#1486)
Co-authored-by: marcie <[email protected]>
2026-08-30 07:49:35 +00:00

91 lines
2.6 KiB
YAML

services:
postgres:
image: pgvector/pgvector:pg17
ports:
- '${PG_HOST_PORT:-5433}:5432'
environment:
POSTGRES_USER: mosaic
POSTGRES_PASSWORD: mosaic
POSTGRES_DB: mosaic
volumes:
- pg_data:/var/lib/postgresql/data
- ./infra/pg-init:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U mosaic']
interval: 5s
timeout: 3s
retries: 5
valkey:
image: valkey/valkey:8-alpine
ports:
- '${VALKEY_HOST_PORT:-6380}:6379'
volumes:
- valkey_data:/data
healthcheck:
test: ['CMD', 'valkey-cli', 'ping']
interval: 5s
timeout: 3s
retries: 5
otel-collector:
image: otel/opentelemetry-collector-contrib:0.100.0
ports:
- '4317:4317' # OTLP gRPC
- '4318:4318' # OTLP HTTP
volumes:
- ./infra/otel-collector.yml:/etc/otelcol-contrib/config.yaml:ro
depends_on:
jaeger:
condition: service_started
jaeger:
image: jaegertracing/jaeger:2.6.0
ports:
- '16686:16686' # Jaeger UI
- '4319:4317' # Jaeger OTLP gRPC (internal, collector forwards here)
environment:
COLLECTOR_OTLP_ENABLED: 'true'
gateway:
# Standalone-tier application service (compose `stack` profile).
# Default image = local build of docker/gateway.Dockerfile (works with
# no registry auth); override GATEWAY_IMAGE to a CI-published sha tag
# for registry deploys (git.mosaicstack.dev/mosaicstack/stack/gateway:sha-XXXXXXX).
profiles: [stack]
image: ${GATEWAY_IMAGE:-mosaic-gateway:dev}
build:
context: .
dockerfile: docker/gateway.Dockerfile
ports:
- '${GATEWAY_HOST_PORT:-14242}:14242'
environment:
GATEWAY_PORT: '14242'
DATABASE_URL: postgresql://mosaic:mosaic@postgres:5432/mosaic
VALKEY_URL: valkey://valkey:6379
# The compose IS the standalone tier by declaration (mode contract:
# mode chosen at install); pinning skips cross-container probe races.
MOSAIC_STORAGE_TIER: standalone
# Standalone-tier secrets: generated at install (see .env.example).
# Enterprise tier replaces these with Vault/Openbao plumbing.
BETTER_AUTH_SECRET: '${BETTER_AUTH_SECRET:?set in .env — openssl rand -hex 32}'
volumes:
- gateway_workspaces:/opt/mosaic/.workspaces
depends_on:
postgres:
condition: service_healthy
valkey:
condition: service_healthy
healthcheck:
test: ['CMD-SHELL', 'wget -qO- http://127.0.0.1:14242/health || exit 1']
interval: 10s
timeout: 5s
retries: 12
start_period: 20s
volumes:
gateway_workspaces:
pg_data:
valkey_data: