ort (ONNX Runtime) has no prebuilt binaries for aarch64-musl. Use a Python subprocess with sentence-transformers instead: - scripts/embed.py: reads JSON stdin, outputs embeddings - kb.rs: calls Python script via tokio subprocess - Dockerfile: install python3 + sentence-transformers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 lines
643 B
Docker
24 lines
643 B
Docker
# Stage 1: Build frontend
|
|
FROM node:22-alpine AS frontend
|
|
WORKDIR /app/web
|
|
COPY web/package.json web/package-lock.json ./
|
|
RUN npm ci
|
|
COPY web/ ./
|
|
RUN npm run build
|
|
|
|
# Stage 2: Runtime
|
|
FROM alpine:3.21
|
|
RUN apk add --no-cache ca-certificates curl bash python3 py3-pip
|
|
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
ENV PATH="/root/.local/bin:$PATH"
|
|
RUN pip3 install --break-system-packages sentence-transformers
|
|
RUN mkdir -p /app/data/workspaces
|
|
WORKDIR /app
|
|
COPY target/aarch64-unknown-linux-musl/release/tori .
|
|
COPY --from=frontend /app/web/dist ./web/dist/
|
|
COPY scripts/embed.py ./scripts/
|
|
COPY config.yaml .
|
|
|
|
EXPOSE 3000
|
|
CMD ["./tori"]
|