mirror of
https://github.com/MemeMeow-Studio/MemeMeow.git
synced 2026-10-19 06:21:45 +08:00
40 lines
1.6 KiB
Docker
40 lines
1.6 KiB
Docker
# DINOv2 权重不复制进公开镜像,部署时由只读 volume 挂载到 /models。
|
|
FROM python:3.12-slim
|
|
|
|
WORKDIR /app
|
|
|
|
ARG DINOV2_SOURCE_COMMIT=7764ea0f912e53c92e82eb78a2a1631e92725fc8
|
|
|
|
# 只复制官方源码,不复制权重;源码提交固定以保证 checkpoint 架构不漂移。
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates curl tar \
|
|
&& mkdir -p /opt/dinov2 \
|
|
&& curl --fail --silent --show-error --location --retry 3 \
|
|
"https://github.com/facebookresearch/dinov2/archive/${DINOV2_SOURCE_COMMIT}.tar.gz" \
|
|
| tar -xzf - --strip-components=1 -C /opt/dinov2 \
|
|
&& printf '%s\n' "${DINOV2_SOURCE_COMMIT}" > /opt/dinov2/.mememeow-dinov2-source-commit \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN pip install --no-cache-dir --index-url https://download.pytorch.org/whl/cpu \
|
|
torch==2.8.0+cpu torchvision==0.23.0+cpu
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY backend ./backend
|
|
# backend.database 的 Repository 导入会复用 executor.agent_limits 的公共校验。
|
|
COPY executor ./executor
|
|
COPY visual_service.py ./visual_service.py
|
|
COPY runtime_telemetry.py ./runtime_telemetry.py
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
MEMEMEOW_VISUAL_MODEL_REPO=/opt/dinov2 \
|
|
MEMEMEOW_VISUAL_WEIGHTS_PATH=/models/dinov2_vitb14_pretrain.pth \
|
|
MEMEMEOW_VISUAL_MODEL=dinov2_vitb14 \
|
|
MEMEMEOW_VISUAL_DIMENSIONS=768 \
|
|
MEMEMEOW_VISUAL_PREPROCESS_VERSION=dinov2_vitb14-rgb224-first-frame-v1 \
|
|
MEMEMEOW_VISUAL_CPU_THREADS=4 \
|
|
MEMEMEOW_VISUAL_CPU_INTEROP_THREADS=1
|
|
|
|
EXPOSE 8276
|
|
CMD ["uvicorn", "visual_service:app", "--host", "0.0.0.0", "--port", "8276"]
|