Files
rag-local/Dockerfile
T
2026-08-05 10:28:44 +08:00

32 lines
963 B
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ==================== 阶段 1:构建前端 SPA ====================
FROM node:20-alpine AS ui
WORKDIR /ui
COPY ui-src/package.json ui-src/package-lock.json ./
RUN npm ci
COPY ui-src/ ./
RUN npm run build
# ==================== 阶段 2:构建后端二进制(modernc sqlite 纯 Go,无 CGO ====================
FROM golang:1.26 AS build
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o rag-local .
# ==================== 阶段 3:精简运行镜像 ====================
FROM alpine:3.20
WORKDIR /app
RUN apk add --no-cache tzdata && \
adduser -D -u 1000 app && \
mkdir -p /app/data /app/workspace && \
chown -R app:app /app
ENV TZ=Asia/Shanghai
COPY --from=build /app/rag-local /app/rag-local
COPY --from=build /app/config.yml /app/config.yml
COPY --from=ui /ui/dist /app/ui-src/dist
USER app
EXPOSE 8080
VOLUME ["/app/data", "/app/workspace"]
ENTRYPOINT ["/app/rag-local"]