File size: 1,190 Bytes
4c031a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
FROM debian:bookworm-20260223-slim

# 安装基础依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
        curl \
        ca-certificates \
        tar \
    && rm -rf /var/lib/apt/lists/*

# 从官方镜像直接复制 caddy 和 uv 二进制,避免 apt repo 和 gpg 依赖
COPY --from=caddy:latest /usr/bin/caddy /usr/local/bin/caddy
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

# 下载并校验 subconverter
ARG SUBCONVERTER_URL=https://github.com/tindy2013/subconverter/releases/download/v0.9.0/subconverter_linux64.tar.gz
ARG SUBCONVERTER_SHA256=884a6d1168267eba076fcdd5171215bacf98c17948ab526e4cbbdcad5f7a0217
RUN curl -fsSL "$SUBCONVERTER_URL" -o /tmp/subconverter.tar.gz && \
    echo "${SUBCONVERTER_SHA256}  /tmp/subconverter.tar.gz" | sha256sum -c - && \
    tar -xzf /tmp/subconverter.tar.gz -C /opt && \
    rm /tmp/subconverter.tar.gz

# 安装 FastAPI 依赖(利用 uv 缓存层)
WORKDIR /app
COPY app/pyproject.toml .
RUN uv sync --no-dev

# 复制应用代码
COPY app/ .

# Caddy 配置
COPY Caddyfile /etc/caddy/Caddyfile

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 7860

CMD ["/entrypoint.sh"]