Files
dxin 82a4aa0e14 +1
2025-10-16 11:52:59 +08:00

117 lines
2.5 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用 Python 3.12.9 官方镜像
FROM python:3.12.9-slim
# 系统优化与依赖和编译环境
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
gcc \
autoconf \
make \
libssl-dev \
libffi-dev \
python3-dev \
&& rm -rf /var/lib/apt/lists/*
# 设置时区
ENV TZ=Asia/Shanghai
# 创建应用目录
WORKDIR /app
# 复制依赖清单
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制项目代码
COPY . .
# 创建日志目录(即使宿主机未挂载也能运行)
RUN mkdir -p /app/logs
RUN chmod +x /app/start.sh
# 启动环境(默认 prod
ENV APP_ENV=prod
# Entrypoint 会根据 APP_ENV 动态决定配置文件
# 这里不直接启动 gunicorn而是用 start.sh 控制日志等
ENTRYPOINT ["bash", "start.sh"]
#-----------------------------------------------
# 基于你自己的基础镜像
FROM uswccr.ccs.tencentyun.com/lessie/python:3.12.9-base
LABEL maintainer="lessie <ops@lessie.ai>"
ENV TZ=Asia/Shanghai
WORKDIR /app
# 拷贝依赖文件并安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 拷贝项目代码
COPY . .
# 创建日志目录
RUN mkdir -p /app/logs && chmod +x /app/start.sh
# 环境变量(可在 compose 覆盖)
ENV APP_ENV=local
# 启动命令
ENTRYPOINT ["bash", "start.sh"]
#-----------------------------------------------
# docker build -t lessie/lessie-sourcing-agents:v0.0.1 .
# docker images | grep lessie
# docker tag lessie/lessie-sourcing-agents:v0.0.1 uswccr.ccs.tencentyun.com/lessie/lessie-sourcing-agents:v0.0.1
# docker push uswccr.ccs.tencentyun.com/lessie/lessie-sourcing-agents:v0.0.1
# --------------------------
# Stage 1: Builder
# --------------------------
FROM uswccr.ccs.tencentyun.com/lessie/python:3.12.9-base AS builder
LABEL maintainer="lessie <ops@lessie.ai>"
ENV TZ=Asia/Shanghai
WORKDIR /app
# 拷贝依赖文件并安装依赖到 /app/deps
COPY requirements.txt .
RUN pip install --no-cache-dir --prefix=/app/deps -r requirements.txt
# --------------------------
# Stage 2: Runtime
# --------------------------
# 最终运行镜像,用 slim 最小化
FROM python:3.12.9-slim
ENV TZ=Asia/Shanghai
WORKDIR /app
# 拷贝已安装的依赖
COPY --from=builder /app/deps /usr/local
# 拷贝项目代码
COPY . .
# 创建日志目录
RUN mkdir -p /app/logs && chmod +x /app/start.sh
# 环境变量(可在 docker-compose 覆盖)
ENV APP_ENV=local
# 启动命令
ENTRYPOINT ["bash", "start.sh"]