Article What is the Infra container image?

The infra image provides Community infrastructure services used by the application tier. For standard local use, prefer Compose.

Prerequisites

Purpose

Use the infra container to provide an optimized backend to Community's Infra plugin which implements out-of-the-box support for Community's extensible caching and messaging providers: 

Dependencies

Infra is a supporting dependency for web and job. While Community can support alternative message bus and cache providers, if the out-of-the-box Infra plugin is enabled, then the infra container must also be running.

Configuration

Configuration is performed via environmental variables. The sample compose stacks configure the following:

  • Cache memory limit
  • Message bus message length and idle settings
  • OTLP logging and metrics export to the local telemetry dashboard
# Cache size limit
INFRA_Cache_MemoryLimitMegabytes: 500
# Max length per message
INFRA_MessageBus_MaxLengthBytes: 102400
# Seconds beyond which an idle application is removed
INFRA_MessageBus_IdleSeconds: 60

# Metrics
INFRA_Metrics_EnableOtlp: true
INFRA_Metrics_EnableConsole: false
INFRA_Metrics_OtlpEndpointProtocol: grpc
INFRA_Metrics_OtlpEndpoint: http://telemetry:18889/

# Logging
INFRA_Logging_EnableOtlp: true
INFRA_Logging_EnableConsole: false
INFRA_Logging_OtlpEndpointProtocol: grpc
INFRA_Logging_OtlpEndpoint: http://telemetry:18889/
INFRA_Logging_MinimumLevel: Information,Microsoft.AspNetCore:Warning

The application tier is configured to use the infra container via the enablement and configuration of the Infra plugin. This can be configured via the UI or pre-configured and locked via layered configuration , similar to the sample compose stacks.

{
  // ...
  "PluginEnablement": {
    // ...
    "Telligent.Evolution.Infra.Connector.InfraPlugin, Telligent.Evolution.Infra.Connector": true
    // ...
  },
  "PluginConfiguration": {
    // ...
    "Telligent.Evolution.Infra.Connector.InfraPlugin, Telligent.Evolution.Infra.Connector:host": "http://infra:8080",
    // ...
  }
  // ...
}

Volumes and Ports

  • Container port 8080 is published as host port 5700 in the sample stack, but should not be publicly forwarded.
  • infra does not require volumes.