first commit
This commit is contained in:
+37
@@ -0,0 +1,37 @@
|
||||
# 本地重排服务镜像。
|
||||
#
|
||||
# 模型不在构建期打包 —— 体积大(约 290MB)且会频繁升级,改为容器启动时按需下载,
|
||||
# 已有则复用。这样换模型只需改环境变量后重启,不用重新 build。
|
||||
FROM python:3.11-slim
|
||||
|
||||
# pip 源做成构建参数:国内机器可用清华源显著提速
|
||||
ARG PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
ARG PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn
|
||||
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PYTHONDONTWRITEBYTECODE=1 \
|
||||
PIP_NO_CACHE_DIR=1 \
|
||||
PIP_DISABLE_PIP_VERSION_CHECK=1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir \
|
||||
-i "${PIP_INDEX_URL}" \
|
||||
--trusted-host "${PIP_TRUSTED_HOST}" \
|
||||
-r requirements.txt
|
||||
|
||||
COPY app.py download_model.py entrypoint.sh ./
|
||||
RUN chmod +x entrypoint.sh
|
||||
|
||||
# 模型目录。挂卷到这里,重启容器时模型不会丢。
|
||||
ENV MODEL_DIR=/models
|
||||
RUN mkdir -p /models
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
# slim 镜像里没有 curl,直接用 python 做健康检查
|
||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=600s --retries=3 \
|
||||
CMD python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/health',timeout=4).status==200 else 1)"
|
||||
|
||||
CMD ["./entrypoint.sh"]
|
||||
Reference in New Issue
Block a user