| FROM rust:bookworm AS builder |
|
|
| WORKDIR /app |
|
|
| RUN cargo init --bin --name hf-rust-api . |
|
|
| RUN cargo add tokio --features full && \ |
| cargo add futures && \ |
| cargo add serde --features derive && \ |
| cargo add serde_json && \ |
| cargo add warp --features server && \ |
| cargo add anyhow && \ |
| cargo add chaser-oxide@0.2.3 |
|
|
| COPY main.rs src/main.rs |
|
|
| RUN cargo build --release |
|
|
| FROM debian:bookworm-slim |
|
|
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| wget \ |
| gnupg \ |
| ca-certificates \ |
| && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/googlechrome-keyring.gpg \ |
| && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/googlechrome-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list \ |
| && apt-get update && apt-get install -y --no-install-recommends \ |
| google-chrome-stable \ |
| fonts-ipafont-gothic \ |
| fonts-wqy-zenhei \ |
| fonts-thai-tlwg \ |
| fonts-kacst \ |
| fonts-freefont-ttf \ |
| libxss1 \ |
| && apt-get clean \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| WORKDIR /app |
|
|
| COPY --from=builder /app/target/release/hf-rust-api ./main |
|
|
| RUN mkdir -p /tmp && chmod 777 /tmp |
|
|
| ENV CHROME_PATH=/usr/bin/google-chrome-stable |
| ENV HOME=/tmp |
|
|
| EXPOSE 7860 |
|
|
| CMD ["./main"] |