20 lines
638 B
Docker
20 lines
638 B
Docker
# 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"]
|