summaryrefslogtreecommitdiffhomepage
path: root/Dockerfile.dev
diff options
context:
space:
mode:
Diffstat (limited to 'Dockerfile.dev')
-rw-r--r--Dockerfile.dev19
1 files changed, 19 insertions, 0 deletions
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 99c6a39..52b1aa2 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -1,3 +1,19 @@
+# --- 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
WORKDIR /app
@@ -11,6 +27,9 @@ COPY packages/frontend/package.json packages/frontend/package.json
# Install dependencies (cached unless package files change)
RUN bun install
+# Bundle the patched `cs` code-search binary for the search_code tool
+COPY --from=cs-builder /usr/local/bin/cs /usr/local/bin/cs
+
# Source code is volume-mounted at runtime, overriding this copy
COPY . .