ronghua commited on
Commit
45901ad
·
1 Parent(s): ca4484d
Files changed (1) hide show
  1. Dockerfile +25 -10
Dockerfile CHANGED
@@ -1,33 +1,48 @@
1
- FROM rust:1.84.0-slim-bookworm as builder
 
2
 
3
  WORKDIR /app
 
 
4
  RUN apt-get update && \
5
  apt-get install -y --no-install-recommends \
6
- build-essential protobuf-compiler pkg-config libssl-dev nodejs npm openssl \
 
 
 
 
 
7
  && rm -rf /var/lib/apt/lists/*
8
 
 
9
  COPY . .
10
- RUN case "$TARGETARCH" in \
11
- amd64) TARGET_CPU="x86-64-v3" ;; \
12
- arm64) TARGET_CPU="neoverse-n1" ;; \
13
- *) echo "Unsupported architecture: $TARGETARCH" && exit 1 ;; \
14
- esac && \
15
- RUSTFLAGS="-C link-arg=-s -C target-cpu=$TARGET_CPU" cargo build --release && \
16
- cp target/release/cursor-api /app/cursor-api
17
 
18
  # 运行阶段
19
  FROM debian:bookworm-slim
20
 
21
  WORKDIR /app
 
22
  ENV TZ=Asia/Shanghai
23
 
 
24
  RUN apt-get update && \
25
  apt-get install -y --no-install-recommends \
26
- ca-certificates tzdata openssl \
 
27
  && rm -rf /var/lib/apt/lists/*
28
 
 
29
  COPY --from=builder /app/cursor-api .
30
 
 
31
  ENV PORT=3000
 
 
32
  EXPOSE ${PORT}
 
33
  CMD ["./cursor-api"]
 
1
+ # 构建阶段
2
+ FROM rust:1.83.0-slim-bookworm as builder
3
 
4
  WORKDIR /app
5
+
6
+ # 安装构建依赖
7
  RUN apt-get update && \
8
  apt-get install -y --no-install-recommends \
9
+ build-essential \
10
+ protobuf-compiler \
11
+ pkg-config \
12
+ libssl-dev \
13
+ nodejs \
14
+ npm \
15
  && rm -rf /var/lib/apt/lists/*
16
 
17
+ # 复制项目文件
18
  COPY . .
19
+
20
+ # 构建
21
+ RUN rustup target add x86_64-unknown-linux-gnu && \
22
+ cargo build --target x86_64-unknown-linux-gnu --release && \
23
+ cp target/x86_64-unknown-linux-gnu/release/cursor-api /app/cursor-api
 
 
24
 
25
  # 运行阶段
26
  FROM debian:bookworm-slim
27
 
28
  WORKDIR /app
29
+
30
  ENV TZ=Asia/Shanghai
31
 
32
+ # 安装运行时依赖
33
  RUN apt-get update && \
34
  apt-get install -y --no-install-recommends \
35
+ ca-certificates \
36
+ tzdata \
37
  && rm -rf /var/lib/apt/lists/*
38
 
39
+ # 复制构建产物
40
  COPY --from=builder /app/cursor-api .
41
 
42
+ # 设置默认端口
43
  ENV PORT=3000
44
+
45
+ # 动态暴露端口
46
  EXPOSE ${PORT}
47
+
48
  CMD ["./cursor-api"]