docker打包python应用

FROM  172.17.128.132/base/python:3.10-slim
WORKDIR /app/
# 安装系统依赖
# RUN apt-get update && apt-get install -y --no-install-recommends \
#     build-essential \
#     && rm -rf /var/lib/apt/lists/*

# 安装Poetry
RUN pip install --index-url http://172.17.128.132:8080/simple --trusted-host 172.17.128.132  pip -U && \
    pip config set global.index-url http://172.17.128.132:8080/simple && \
    pip install poetry  --index-url http://172.17.128.132:8080/simple --trusted-host 172.17.128.132  && \
    poetry config virtualenvs.create false

# 复制依赖配置文件
COPY ./pyproject.toml ./poetry.lock* /app/

RUN poetry config repositories.m-repo https://mirrors.huaweicloud.com/repository/pypi/simple/  && \
    poetry source add --priority=primary m-repo https://mirrors.huaweicloud.com/repository/pypi/simple/
    
# 简化依赖安装 - 直接安装所有依赖
RUN poetry lock --no-update
RUN poetry install --no-root  &&  pip list

# 确保关键依赖一定存在
RUN pip install sqlalchemy sqlmodel alembic gunicorn  --index-url  http://172.17.128.132:8080/simple --trusted-host 172.17.128.132 

ENV PYTHONPATH=/app

# 复制应用代码和脚本
COPY ./app /app/app
COPY ./static /app/static
COPY ./scripts /app/scripts
COPY ./alembic.ini /app/
COPY ./prestart.sh /app/
COPY ./start.sh /start.sh
COPY ./start-reload.sh /start-reload.sh

# 使脚本可执行
RUN chmod +x /start.sh /start-reload.sh /app/prestart.sh

# 设置默认命令
CMD ["/start.sh"]

  

posted @ 2025-04-17 09:38  羊脂玉净瓶  阅读(16)  评论(0)    收藏  举报