mirror of
https://wget.la/https://github.com/leookun/cursor-byok
synced 2026-10-03 18:23:51 +08:00
refactor: rebuild desktop app with Tauri
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
FROM node:22-bookworm-slim AS web
|
||||
WORKDIR /src/apps/desktop
|
||||
COPY apps/desktop/package.json apps/desktop/package-lock.json ./
|
||||
RUN --mount=type=cache,target=/root/.npm npm ci
|
||||
COPY apps/desktop/index.html apps/desktop/tsconfig.json apps/desktop/tsconfig.node.json apps/desktop/vite.config.ts ./
|
||||
COPY apps/desktop/plugins/ plugins/
|
||||
COPY apps/desktop/public/ public/
|
||||
COPY apps/desktop/src/ src/
|
||||
RUN npm run build
|
||||
|
||||
FROM rust:1-bookworm AS server
|
||||
WORKDIR /src
|
||||
COPY Cargo.toml Cargo.lock ./
|
||||
COPY server/ server/
|
||||
COPY apps/desktop/src-tauri/Cargo.toml apps/desktop/src-tauri/Cargo.toml
|
||||
COPY apps/desktop/src-tauri/build.rs apps/desktop/src-tauri/build.rs
|
||||
COPY apps/desktop/src-tauri/src/ apps/desktop/src-tauri/src/
|
||||
COPY apps/desktop/src-tauri/capabilities/ apps/desktop/src-tauri/capabilities/
|
||||
COPY apps/desktop/src-tauri/icons/ apps/desktop/src-tauri/icons/
|
||||
COPY apps/desktop/src-tauri/tauri.conf.json apps/desktop/src-tauri/tauri.conf.json
|
||||
COPY scripts/cursor-proto/proto/ scripts/cursor-proto/proto/
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,target=/usr/local/cargo/git \
|
||||
--mount=type=cache,target=/src/target \
|
||||
cargo build --release --locked --package cursor-server --bin cursor-server && \
|
||||
cp target/release/cursor-server /tmp/cursor-server
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
RUN apt-get update && \
|
||||
apt-get install --yes --no-install-recommends ca-certificates curl && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
useradd --system --uid 10001 --home-dir /nonexistent --shell /usr/sbin/nologin cursor-byok && \
|
||||
mkdir -p /app/console /data && \
|
||||
chown cursor-byok:cursor-byok /data
|
||||
|
||||
COPY --from=server /tmp/cursor-server /usr/local/bin/cursor-server
|
||||
COPY --from=web /src/apps/desktop/dist/ /app/console/
|
||||
|
||||
ENV CURSOR_LISTEN_ADDR=0.0.0.0:3000 \
|
||||
CURSOR_DATABASE_URL=sqlite:///data/cursor-server.db \
|
||||
CURSOR_CONSOLE_DIR=/app/console \
|
||||
RUST_LOG=cursor_server=info
|
||||
|
||||
USER cursor-byok
|
||||
EXPOSE 3000
|
||||
VOLUME ["/data"]
|
||||
HEALTHCHECK --interval=10s --timeout=3s --retries=5 \
|
||||
CMD curl --fail --silent http://127.0.0.1:3000/__byok-api__/healthz || exit 1
|
||||
ENTRYPOINT ["/usr/local/bin/cursor-server"]
|
||||
Reference in New Issue
Block a user