StarrySkyWorld commited on
Commit
9ba8e85
·
verified ·
1 Parent(s): 54d8d6b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -3
Dockerfile CHANGED
@@ -1,17 +1,26 @@
 
 
 
 
 
 
 
 
 
1
  FROM rustlang/rust:nightly AS builder
2
  WORKDIR /app
3
  RUN git clone https://github.com/AmethystDev-Labs/kiro.rs.git .
4
- RUN cargo build --release
 
5
 
 
6
  FROM debian:bookworm-slim
7
  RUN apt-get update && \
8
  apt-get install -y ca-certificates curl openssl jq xxd && \
9
  rm -rf /var/lib/apt/lists/*
10
-
11
  WORKDIR /app
12
  COPY --from=builder /app/target/release/kiro-rs /app/kiro-rs
13
  COPY start.sh /app/start.sh
14
  RUN chmod +x /app/start.sh
15
-
16
  EXPOSE 7860
17
  CMD ["/app/start.sh"]
 
1
+ # 阶段1: 构建前端
2
+ FROM node:22-alpine AS frontend-builder
3
+ WORKDIR /app/admin-ui
4
+ COPY admin-ui/package.json admin-ui/pnpm-lock.yaml* ./
5
+ RUN npm install -g pnpm && pnpm install
6
+ COPY admin-ui ./
7
+ RUN pnpm build
8
+
9
+ # 阶段2: 构建 Rust 后端
10
  FROM rustlang/rust:nightly AS builder
11
  WORKDIR /app
12
  RUN git clone https://github.com/AmethystDev-Labs/kiro.rs.git .
13
+ COPY --from=frontend-builder /app/admin-ui/dist /app/admin-ui/dist
14
+ RUN cargo build --release --features embed-admin-ui
15
 
16
+ # 阶段3: 最终运行镜像
17
  FROM debian:bookworm-slim
18
  RUN apt-get update && \
19
  apt-get install -y ca-certificates curl openssl jq xxd && \
20
  rm -rf /var/lib/apt/lists/*
 
21
  WORKDIR /app
22
  COPY --from=builder /app/target/release/kiro-rs /app/kiro-rs
23
  COPY start.sh /app/start.sh
24
  RUN chmod +x /app/start.sh
 
25
  EXPOSE 7860
26
  CMD ["/app/start.sh"]