# mglpi — the GLPI/CMDB CLI as a container (MOPAC fleet pattern). # # Built via `docker compose build mglpi` (glpi-go/docker-compose.yml), # which tags mopac-mglpi:. Invocation is the TSYSGroupAIOS # container-CLI pattern (no host binaries, no bin/ shortcuts): # # docker run --rm --env-file ~/.creds/mglpi.env mopac-mglpi:1 \ # change list --status new # docker run --rm -i --env-file ~/.creds/mglpi.env mopac-mglpi:1 \ # mglpi-mcp # the stdio MCP surface (mglpi-mcp is argv[0]) # # Both stages digest-pinned; the builder matches dev.sh (root AGENTS.md: # ALL Go work through the golang:1.26-bookworm builder). The binaries are # static (CGO off), so the runtime is bare alpine. FROM golang@sha256:e8c859f5632dcfde7b32d2012b4351728f6437930887c2f6a91ea242459e5514 AS build # = golang:1.26-bookworm WORKDIR /src COPY go.mod ./ COPY cmd ./cmd COPY internal ./internal COPY glpi ./glpi RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/mglpi ./cmd/mglpi \ && CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/mglpi-mcp ./cmd/mglpi-mcp FROM alpine@sha256:14358309a308569c32bdc37e2e0e9694be33a9d99e68afb0f5ff33cc1f695dce # = alpine:3.22 COPY --from=build /out/mglpi /usr/local/bin/mglpi COPY --from=build /out/mglpi-mcp /usr/local/bin/mglpi-mcp ENTRYPOINT ["/usr/local/bin/mglpi"]