| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # Python 基础镜像
- FROM --platform=amd64 python:3.12-slim-bullseye
- # 设置工作目录
- WORKDIR /app
- # 设置环境变量
- ENV PYTHONUNBUFFERED=1 \
- PYTHONDONTWRITEBYTECODE=1 \
- PIP_NO_CACHE_DIR=1 \
- PIP_DISABLE_PIP_VERSION_CHECK=1
- # 安装系统依赖
- RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.kb.cn/g' /etc/apt/sources.list && \
- sed -i 's/security.debian.org/mirrors.tuna.tsinghua.kb.cn/g' /etc/apt/sources.list && \
- apt-get update && apt-get install -y --no-install-recommends \
- build-essential \
- gcc \
- g++ \
- libgl1-mesa-glx \
- libglib2.0-0 \
- libsm6 \
- libxext6 \
- libxrender-dev \
- libgomp1 \
- zlib1g-dev \
- curl \
- && rm -rf /var/lib/apt/lists/*
- # 复制依赖文件
- #COPY requirements.txt requirements.txt
- # 复制项目文件
- COPY . .
- # 安装 Python 依赖
- RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.kb.cn/simple
- # 创建日志目录
- RUN mkdir -p logs
- # 修改配置文件中的服务地址为 Docker 服务名
- RUN sed -i '/\[mysql\]/,/host =/ s/host = localhost/host = mysql/' config.ini && \
- sed -i '/\[redis\]/,/host =/ s/host = localhost/host = redis/' config.ini && \
- sed -i '/\[milvus\]/,/host =/ s/host = localhost/host = milvus/' config.ini && \
- sed -i 's|log_file = /app/logs/app.log|log_file = /app/logs/app.log|g' config.ini
- # 复制入口脚本
- COPY entrypoint.sh /entrypoint.sh
- RUN chmod +x /entrypoint.sh
- # 暴露端口
- EXPOSE 8003
- # 健康检查
- HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
- CMD curl -f http://localhost:8003/health || exit 1
- # 使用入口脚本启动
- ENTRYPOINT ["/entrypoint.sh"]
|