# syntax=docker/dockerfile:1 ARG GO_VERSION="1.25" ARG ALPINE_VERSION="3.22" FROM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS builder WORKDIR /src # Copy go files COPY go.mod go.sum ./ # Download dependencies RUN go mod download # Copy source code COPY . . # Build of binary RUN CGO_ENABLED=0 GOOS=linux go build -o docker-language-server ./cmd/docker-language-server # Runtime stage FROM alpine:${ALPINE_VERSION} WORKDIR /app # Copy binary from builder COPY --from=builder /src/docker-language-server /usr/local/bin/ # Set entrypoint to run LSP server ENTRYPOINT ["docker-language-server"] CMD ["start", "--stdio"]