chore: update dockerfile

This commit is contained in:
xugo
2026-03-27 19:57:18 +08:00
parent 475980ef9e
commit fb2211da5b
+13 -23
View File
@@ -1,9 +1,12 @@
# ============================================
# 阶段 1: 构建 Python 依赖
# ============================================
FROM debian:trixie-slim AS python-builder
# ZLMediaKit 基于 Ubuntu 24.04 编译,内嵌 Python 3.12 解释器,
# pip 包必须与 Python 3.12 ABI 一致,否则 C 扩展模块无法加载
FROM ubuntu:24.04 AS python-builder
RUN sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || true
RUN sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g; s|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/ubuntu.sources 2>/dev/null || \
sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g; s|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 \
@@ -30,7 +33,9 @@ RUN pip3 install --no-cache-dir --break-system-packages --target=/python-package
# ============================================
# 阶段 2: 最终运行镜像
# ============================================
FROM debian:trixie-slim
# 与 ZLMediaKit 使用相同基础镜像,自带 Python 3.12
# 避免 libpython3.12 版本不匹配和额外复制
FROM ubuntu:24.04
ENV TZ=Asia/Shanghai
ENV PYTHONDONTWRITEBYTECODE=1
@@ -40,34 +45,19 @@ ENV PYTHONPATH=/opt/media/bin/analysis:/python-packages
WORKDIR /opt/media/bin/
# 配置 apt 源使用阿里云镜像加速
RUN sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \
sed -i 's|http://deb.debian.org|http://mirrors.aliyun.com|g; \
s|http://security.debian.org|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
RUN sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g; s|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/ubuntu.sources 2>/dev/null || \
sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g; s|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true
# 安装运行时依赖(极简版)
# 注意:opencv-python-headless 不需要 libgl1,移除可节省 ~160MB
# Ubuntu 24.04 已预装 libstdc++6, libgcc-s1, libssl3t64
# libpython3.12 是 MediaServer 内嵌 Python 3.12 解释器的核心依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
tzdata \
libstdc++6 \
libgcc-s1 \
libssl3 \
python3 \
libglib2.0-0 \
wget \
libpython3.12 \
&& rm -rf /var/lib/apt/lists/* \
&& apt-get clean
# 从 Debian Bullseye 下载并安装 libssl1.1ZLMediaKit 需要)
RUN ARCH=$(dpkg --print-architecture) && \
wget -q http://mirrors.aliyun.com/debian/pool/main/o/openssl/libssl1.1_1.1.1w-0+deb11u1_${ARCH}.deb -O /tmp/libssl1.1.deb && \
dpkg -i /tmp/libssl1.1.deb || true && \
rm -f /tmp/libssl1.1.deb && \
# 移除 wget(不再需要)
apt-get purge -y wget && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
# 从构建阶段复制 Python 包
COPY --from=python-builder /python-packages /python-packages