# 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"]
