mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2026-08-26 10:07:45 +00:00
bfe0d4c9b0
Adds a Docker healthcheck and the small HTTP/CLI plumbing it needs. - Expose `GET /healthz` on the HTTP-mode server. - Add `-healthcheck` to dial `http://127.0.0.1:<port>/healthz` and exit with status. - Add a Dockerfile `HEALTHCHECK` instruction using `-healthcheck`. - Document HTTP-mode usage and stdio override guidance. Closes https://gitea.com/gitea/gitea-mcp/issues/146 Assisted by Codet. Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/254 Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
39 lines
967 B
Docker
39 lines
967 B
Docker
# syntax=docker/dockerfile:1.26
|
|
|
|
# Build stage
|
|
FROM --platform=$BUILDPLATFORM golang:1.27-alpine AS builder
|
|
|
|
ARG VERSION=dev
|
|
ARG TARGETOS
|
|
ARG TARGETARCH
|
|
|
|
WORKDIR /app
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
go mod download
|
|
|
|
COPY . .
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=cache,target=/root/.cache/go-build \
|
|
CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH:-amd64} \
|
|
go build -trimpath -ldflags="-s -w -X main.Version=${VERSION}" -o gitea-mcp
|
|
|
|
# Final stage
|
|
FROM gcr.io/distroless/static-debian12:nonroot
|
|
|
|
ARG VERSION=dev
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder --chown=nonroot:nonroot /app/gitea-mcp .
|
|
|
|
USER nonroot:nonroot
|
|
|
|
LABEL org.opencontainers.image.version="${VERSION}"
|
|
LABEL org.opencontainers.image.source="https://gitea.com/gitea/gitea-mcp"
|
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
CMD ["/app/gitea-mcp", "-healthcheck"] || exit 1
|
|
|
|
CMD ["/app/gitea-mcp"]
|