|
|
|
FROM rust:1.83.0-slim-bookworm as builder |
|
|
|
WORKDIR /app |
|
|
|
|
|
RUN apt-get update && \ |
|
apt-get install -y --no-install-recommends \ |
|
build-essential \ |
|
protobuf-compiler \ |
|
pkg-config \ |
|
libssl-dev \ |
|
nodejs \ |
|
npm \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
COPY . . |
|
|
|
|
|
RUN rustup target add x86_64-unknown-linux-gnu && \ |
|
cargo build --target x86_64-unknown-linux-gnu --release && \ |
|
cp target/x86_64-unknown-linux-gnu/release/cursor-api /app/cursor-api |
|
|
|
|
|
FROM debian:bookworm-slim |
|
|
|
ENV TZ=Asia/Shanghai |
|
|
|
|
|
RUN apt-get update && \ |
|
apt-get install -y --no-install-recommends \ |
|
ca-certificates \ |
|
tzdata \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
RUN useradd -m -u 1000 user |
|
USER user |
|
ENV HOME=/home/user \ |
|
PATH=/home/user/.local/bin:$PATH |
|
|
|
WORKDIR $HOME/app |
|
|
|
|
|
COPY --from=builder --chown=user /app/cursor-api $HOME/app |
|
|
|
|
|
ENV PORT=3000 |
|
ENV TOKEN_LIST_FILE=$HOME/app/.tokens |
|
|
|
|
|
EXPOSE ${PORT} |
|
|
|
CMD ["./cursor-api"] |