Running with Docker Compose
Using the development image of Chronicle is convenient for getting started quickly. For more control over the runtime environment, you can run Chronicle with MongoDB and other services such as telemetry collectors.
The following configures a docker-compose.yml with Chronicle and Microsoft Aspire.
services: chronicle: image: cratis/chronicle:latest-development sysctls: net.ipv4.ip_local_reserved_ports: "11111,30000,35000" environment: - OTEL_EXPORTER_OTLP_ENDPOINT=http://aspire-dashboard:18889 ports: - 127.0.0.1:35000:35000 - 127.0.0.1:27017:27017
aspire-dashboard: image: mcr.microsoft.com/dotnet/aspire-dashboard:latest environment: - DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS=true - ALLOW_UNSECURED_TRANSPORT=true - DOTNET_ENVIRONMENT=Development ports: - 127.0.0.1:18888:18888 - 127.0.0.1:4317:18889Every port is published on this machine only: the development image’s Workbench accepts well-known credentials, its bundled MongoDB has no authentication, and the dashboard allows anonymous access. The Orleans ports (11111, 30000) are left unpublished because a single local node does not need them. The sysctl reserves those ports and the Chronicle port from ephemeral outbound allocation inside the container. If your container runtime rejects this sysctl, remove the sysctls block and retry; Chronicle’s bounded bind retry still applies.
With this setup, Chronicle runs alongside Microsoft Aspire, which provides a dashboard for OpenTelemetry.