Dockerfile937 B
# syntax=docker/dockerfile:1.18
FROM golang:1.25-alpine@sha256:b6ed3fd0452c0e9bcdef5597f29cc1418f61672e9d3a2f55bf02e7222c014abd AS builder
WORKDIR /app
# Copy go.mod and go.sum first for better layer caching
COPY go.mod go.sum ./
# Download dependencies with cache mounts
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
go mod download
# Copy source code
COPY . .
# Build the binary with cache mounts
RUN --mount=type=cache,target=/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags="-s -w" -o /luno-mcp ./cmd/server
FROM alpine:3.22@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1
RUN apk --no-cache add ca-certificates && \
addgroup -g 1001 app && \
adduser -D -u 1001 -G app app
COPY --from=builder /luno-mcp /luno-mcp
USER app
ENTRYPOINT ["/luno-mcp"]