diff options
Diffstat (limited to 'Dockerfile')
| -rw-r--r-- | Dockerfile | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -1,6 +1,22 @@ # Production Dockerfile — multi-stage build for the API server only # Frontend deploys separately (e.g., Cloudflare Pages) +# --- cs (code spelunker) builder --- +# Builds a patched, statically-linked `cs` binary for the search_code tool. +# Pinned to the v3.1.0 commit for reproducibility; the patch adds Luau +# declaration support (see docker/cs/luau-declarations.patch). cs vendors its +# dependencies, so the `go build` step is offline after the clone. +FROM golang:1.25-bookworm AS cs-builder +ARG CS_COMMIT=697e0bf194bbc7a4a877e5170c70618989fc92e7 +WORKDIR /build +COPY docker/cs/luau-declarations.patch /tmp/luau-declarations.patch +RUN git clone https://github.com/boyter/cs.git src \ + && cd src \ + && git checkout "${CS_COMMIT}" \ + && git apply /tmp/luau-declarations.patch \ + && CGO_ENABLED=0 go build -mod=vendor -ldflags="-s -w" -o /usr/local/bin/cs . \ + && /usr/local/bin/cs --version + FROM oven/bun:1 AS builder WORKDIR /app @@ -26,6 +42,9 @@ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/packages/core ./packages/core COPY --from=builder /app/packages/api ./packages/api +# Bundle the patched `cs` code-search binary for the search_code tool +COPY --from=cs-builder /usr/local/bin/cs /usr/local/bin/cs + # Create workspace directory for file tools RUN mkdir -p workspace |
