Sublink / Dockerfile
BirkhoffLee's picture
feat: 配置好了代理转发架构
4c031a8 unverified
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"]