udpate
This commit is contained in:
parent
3a8ac86094
commit
cd24db99cb
78
Dockerfile
78
Dockerfile
@ -1,43 +1,55 @@
|
|||||||
FROM python:3.13-slim
|
FROM python:3.10-slim as builder
|
||||||
|
|
||||||
|
# 安装系统依赖
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
gcc \
|
||||||
|
g++ \
|
||||||
|
libc6-dev \
|
||||||
|
python3-dev \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /build
|
||||||
|
|
||||||
|
# 复制依赖文件
|
||||||
|
COPY requirements.txt .
|
||||||
|
|
||||||
|
# 安装依赖
|
||||||
|
RUN pip install --upgrade pip && \
|
||||||
|
pip install wheel setuptools && \
|
||||||
|
pip wheel --wheel-dir=/build/wheels -r requirements.txt
|
||||||
|
|
||||||
|
# 第二阶段:最终镜像
|
||||||
|
FROM python:3.10-slim
|
||||||
|
|
||||||
|
# 安装运行时依赖
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
libgomp1 \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# 设置工作目录
|
# 设置工作目录
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# 安装基本依赖
|
# 从构建阶段复制预构建的wheel文件
|
||||||
RUN apt-get update && apt-get install -y \
|
COPY --from=builder /build/wheels /wheels
|
||||||
build-essential \
|
|
||||||
libpq-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# 复制项目文件
|
# 安装预构建的wheel
|
||||||
COPY . /app/
|
RUN pip install --upgrade pip && \
|
||||||
|
pip install --no-index --find-links=/wheels /wheels/* && \
|
||||||
|
rm -rf /wheels
|
||||||
|
|
||||||
# # 创建虚拟环境, 先判断是否存在
|
# 复制应用代码
|
||||||
# RUN if [ ! -d "venv" ]; then \
|
COPY . .
|
||||||
# python -m venv venv; \
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# # 激活虚拟环境
|
# 设置Python路径
|
||||||
# RUN source venv/bin/activate
|
|
||||||
|
|
||||||
# 安装setuptools
|
|
||||||
RUN pip install setuptools
|
|
||||||
|
|
||||||
# 安装Python依赖
|
|
||||||
RUN pip install -r requirements.txt
|
|
||||||
|
|
||||||
# 设置环境变量
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
ENV PYTHONPATH=/app
|
ENV PYTHONPATH=/app
|
||||||
|
|
||||||
# 创建配置文件目录
|
# 创建数据和日志目录
|
||||||
RUN mkdir -p /app/config
|
RUN mkdir -p /app/cryptoai/data /app/cryptoai/logs
|
||||||
|
|
||||||
# 创建数据目录
|
# 设置入口点
|
||||||
RUN mkdir -p /app/cryptoai/data /app/logs
|
ENTRYPOINT ["python"]
|
||||||
|
CMD ["run.py"]
|
||||||
# 暴露端口(如果有Web服务)
|
|
||||||
# EXPOSE 8000
|
|
||||||
|
|
||||||
# 设置容器启动命令
|
|
||||||
ENTRYPOINT ["python", "run.py"]
|
|
||||||
@ -14,6 +14,7 @@ services:
|
|||||||
# 持久化数据和日志
|
# 持久化数据和日志
|
||||||
- cryptoai_data:/app/cryptoai/data
|
- cryptoai_data:/app/cryptoai/data
|
||||||
- cryptoai_logs:/app/logs
|
- cryptoai_logs:/app/logs
|
||||||
|
command: python run.py
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
cryptoai_data:
|
cryptoai_data:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user