Skip to content

Docker

Quick start

git clone https://github.com/infrasigns/infrasigns
cd infrasigns
cp config/config.yaml config/local.yaml
# edit config/local.yaml
docker compose up -d

The bundled docker-compose.yml starts three services:

Service Image Port
infrasigns built from Dockerfile
prometheus prom/prometheus:v3.4.0 9090
node-exporter prom/node-exporter:v1.9.1 9100

Using your own Prometheus

If you already have Prometheus running, point InfraSigns at it and skip the bundled one:

# config/local.yaml
sources:
  - name: production
    url: http://your-prometheus:9090

Then start only InfraSigns:

docker run -v $(pwd)/config/local.yaml:/etc/infrasigns/config.yaml \
  ghcr.io/infrasigns/infrasigns:latest

Config volume

The container reads config from /etc/infrasigns/config.yaml. Mount your config file:

# docker-compose.yml override
services:
  infrasigns:
    volumes:
      - ./config/local.yaml:/etc/infrasigns/config.yaml:ro

Building locally

docker build -t infrasigns:dev .

The image uses a multi-stage build:

  • Stage 1 (golang:1.26-alpine) — compiles the binary with -ldflags="-s -w" -trimpath
  • Stage 2 (gcr.io/distroless/static-debian12) — minimal runtime, no shell