优化
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM python:3.12-slim
|
||||
FROM python:3.12-slim-bookworm
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -13,5 +13,9 @@ RUN pip install --no-cache-dir -r requirements-base.txt && \
|
||||
|
||||
COPY src/shared/ /app/src/shared/
|
||||
|
||||
# init_db 启动期自动迁移(AUTO_MIGRATE)需要迁移脚本随镜像分发
|
||||
COPY migrations/ /app/migrations/
|
||||
COPY alembic.ini /app/alembic.ini
|
||||
|
||||
ENV PYTHONPATH=/app/src
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
@@ -1,24 +1,43 @@
|
||||
FROM continuumio/miniconda3:latest AS pythonocc
|
||||
# PythonOCC 仅经 conda-forge 提供,且其动态库与 conda Python 的 ABI 绑定。
|
||||
# 旧方式(conda 环境装好后把 site-packages 拷入 python:slim 系统 python)依赖
|
||||
# 两侧 Python ABI 恰好兼容,属脆弱做法(TECH_DEBT D13);现改为直接以同一
|
||||
# conda 运行时作为最终镜像的执行环境,自带全部动态库。
|
||||
FROM continuumio/miniconda3:24.7.1-0
|
||||
|
||||
RUN conda update -n base -c defaults conda -y && \
|
||||
conda create -n moldinsight python=3.12 pythonocc-core=7.9.0 -c conda-forge -y
|
||||
# 锁定几何栈核心版本;pip 侧全量版本锁待首次镜像构建成功后由
|
||||
# `pip freeze > deploy/requirements-moldinsight.lock.txt` 生成(D13 遗留项)
|
||||
RUN conda create -n moldinsight -c conda-forge -y \
|
||||
python=3.12 \
|
||||
pythonocc-core=7.9.0 \
|
||||
&& conda clean -afy
|
||||
|
||||
FROM gemold-base:latest
|
||||
ENV PATH=/opt/conda/envs/moldinsight/bin:$PATH \
|
||||
PYTHONUNBUFFERED=1
|
||||
|
||||
COPY --from=pythonocc /opt/conda/envs/moldinsight/lib/python3.12/site-packages/ /usr/local/lib/python3.12/site-packages/
|
||||
WORKDIR /app
|
||||
|
||||
COPY deploy/requirements-moldinsight.txt .
|
||||
|
||||
RUN pip install --no-cache-dir -r requirements-moldinsight.txt && \
|
||||
rm requirements-moldinsight.txt
|
||||
# 自包含构建:不再基于 gemold-base,基础依赖与模块依赖一并安装
|
||||
COPY deploy/requirements-base.txt deploy/requirements-moldinsight.txt ./
|
||||
RUN pip install --no-cache-dir \
|
||||
-r requirements-base.txt \
|
||||
-r requirements-moldinsight.txt \
|
||||
&& rm requirements-base.txt requirements-moldinsight.txt
|
||||
|
||||
COPY src/shared/ /app/src/shared/
|
||||
COPY src/moldinsight/ /app/src/moldinsight/
|
||||
COPY src/inventory/ /app/src/inventory/
|
||||
COPY src/entrypoints/ /app/src/entrypoints/
|
||||
COPY src/celery_app.py src/celery_tasks.py /app/src/
|
||||
|
||||
# init_db 启动期自动迁移(AUTO_MIGRATE)需要迁移脚本随镜像分发
|
||||
COPY migrations/ /app/migrations/
|
||||
COPY alembic.ini /app/alembic.ini
|
||||
|
||||
COPY uploads/ /app/uploads/
|
||||
COPY html_output/ /app/html_output/
|
||||
|
||||
ENV PYTHONPATH=/app/src
|
||||
|
||||
RUN mkdir -p /app/logs
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
Reference in New Issue
Block a user