cror / Dockerfile
xcolorday's picture
Update Dockerfile
bee48e6 verified
Raw
History Blame Contribute Delete
1.56 kB
# 使用 nightly 版本的 Rust 来支持不稳定功能
FROM rustlang/rust:nightly-bookworm-slim as builder
# 安装构建依赖
RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
clang \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# 复制 Cargo.toml
COPY Cargo.toml ./
# 创建虚拟源文件以允许依赖解析
RUN mkdir -p src && \
echo '#[tokio::main]' > src/main.rs && \
echo 'async fn main() { println!("Building dependencies..."); }' >> src/main.rs
# 预构建依赖(不使用 --locked 标志)
RUN cargo build --release
RUN rm -rf src target/release/deps/cursor_api*
# 复制所有源代码
COPY src ./src
# 检查并复制补丁目录(如果存在)
COPY patch ./patch || echo "No patch directory found, continuing..."
# 复制其他文件
COPY tools ./tools
COPY build.rs ./
# 构建应用
RUN cargo build --release
# 多阶段构建 - 运行时镜像
FROM debian:bookworm-slim
# 安装运行时依赖
RUN apt-get update && apt-get install -y \
ca-certificates \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
WORKDIR /app
# 从构建阶段复制可执行文件
COPY --from=builder /app/target/release/cursor-api /usr/local/bin/cursor-api
# 创建非 root 用户
RUN groupadd -r user && useradd -r -g user -u 1000 user
# 设置正确的权限
RUN chmod +x /usr/local/bin/cursor-api
# 暴露 Hugging Face Spaces 标准端口
EXPOSE 7860
# 切换到非 root 用户
USER user
# 启动命令 - 确保应用监听 7860 端口
CMD ["cursor-api"]