File size: 1,362 Bytes
bc32e7b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | # syntax=docker/dockerfile:1.6
FROM rust:1.92.0-bookworm AS builder
WORKDIR /workspace
RUN apt-get update \
&& apt-get install -y --no-install-recommends pkg-config libssl-dev ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Copy source (includes Tomato-Novel-Official-API as subdir in the build context)
COPY . /workspace/Tomato-Novel-Downloader
# Move the private dependency to expected sibling path
RUN if [ -d "/workspace/Tomato-Novel-Downloader/Tomato-Novel-Official-API" ]; then \
mv /workspace/Tomato-Novel-Downloader/Tomato-Novel-Official-API /workspace/Tomato-Novel-Official-API; \
fi
WORKDIR /workspace/Tomato-Novel-Downloader
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/usr/local/cargo/git \
cargo build --release --no-default-features --features official-api,tts,docker
FROM debian:bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /workspace/Tomato-Novel-Downloader/target/release/tomato-novel-downloader /app/tomato-novel-downloader
COPY docker-entrypoint-webui.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh
ENV TOMATO_WEB_ADDR=0.0.0.0:18423
ENV TOMATO_DATA_DIR=
ENV TOMATO_WEB_PASSWORD=
EXPOSE 18423
ENTRYPOINT ["/app/entrypoint.sh"]
|