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"]