# App-Lock 授权后端 —— 一键 Docker 镜像
# 基础镜像：Python 3.11 精简版（含 pip，体积约 150MB）
FROM python:3.11-slim

# 避免交互式提示、加速安装
ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PIP_NO_CACHE_DIR=1

# 工作目录：容器内代码根
WORKDIR /app

# 先拷依赖清单并安装（利用 Docker 层缓存，改代码不会重装依赖）
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 再拷应用代码
COPY app/ ./app/
COPY cdk_admin_cli.py .

# 数据库挂到 /data 卷（容器重建数据不丢）；可用环境变量 DB_PATH 覆盖
ENV DB_PATH=/data/app.db \
    PORT=8000

# 暴露端口（与 uvicorn --port 一致）
EXPOSE 8000

# 启动：0.0.0.0 监听容器所有网卡，便于外部访问
CMD ["sh", "-c", "uvicorn app.main:app --host 0.0.0.0 --port ${PORT}"]
