# syntax=docker/dockerfile:1 # Pinned Go version, matches go.mod (go 1.25). FROM golang:1.25.3-alpine AS build WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . ARG VERSION=docker RUN CGO_ENABLED=0 go build -trimpath -ldflags "-s -w -X main.version=${VERSION}" -o /out/openclaw ./cmd/openclaw \ && mkdir -p /out/data FROM gcr.io/distroless/static-debian12:nonroot COPY --from=build /out/openclaw /usr/local/bin/openclaw COPY --from=build --chown=65532:65532 /out/data /data ENV OPENCLAW_DATA_DIR=/data \ OPENCLAW_LISTEN=0.0.0.0:8787 USER 65532:65532 EXPOSE 8787 VOLUME ["/data"] ENTRYPOINT ["/usr/local/bin/openclaw"]