services: mimir: image: grafana/mimir:3.1.2 container_name: mimir restart: unless-stopped command: - -config.file=/etc/mimir/config.yaml - -config.expand-env=true # REQUIRED — expands ${GARAGE_*} - -target=all # monolithic single-binary mode ports: - "9009:9009" # LAN IP, not 0.0.0.0 — push+query volumes: - ./mimir-config.yaml:/etc/mimir/config.yaml:ro - ./mimir-data:/data # WAL / tsdb / compactor scratch env_file: [.env] # GARAGE_ACCESS_KEY / GARAGE_SECRET_KEY networks: [obs] healthcheck: test: ["CMD-SHELL", "wget -qO- http://localhost:9009/ready || exit 1"] interval: 15s timeout: 5s retries: 10 start_period: 30s logging: # don't let Mimir's own logs balloon driver: json-file options: { max-size: "10m", max-file: "3" } networks: obs: { driver: bridge }