byteclaw/Dockerfile

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/byteclaw ./cmd/byteclaw \
&& mkdir -p /out/data
FROM gcr.io/distroless/static-debian12:nonroot
COPY --from=build /out/byteclaw /usr/local/bin/byteclaw
COPY --from=build --chown=65532:65532 /out/data /data
ENV BYTECLAW_DATA_DIR=/data \
BYTECLAW_LISTEN=0.0.0.0:8787
USER 65532:65532
EXPOSE 8787
VOLUME ["/data"]
ENTRYPOINT ["/usr/local/bin/byteclaw"]