Dockerfile 命令
Python 不缓存 缓存 不要在 FROM 中使用 --platform=linux/amd64,而是在构建时指定
Python
不缓存
1# syntax=docker/dockerfile:1
2FROM python:3.12-slim
3
4# 设置元数据
5LABEL maintainer="hr-ai"
6LABEL description="人资智能检索系统 API 服务"
7
8# 设置环境变量
9ENV PYTHONUNBUFFERED=1 \
10 PYTHONDONTWRITEBYTECODE=1 \
11 PIP_NO_CACHE_DIR=1 \
12 PIP_DISABLE_PIP_VERSION_CHECK=1 \
13 PIP_DEFAULT_TIMEOUT=100
14
15# 设置工作目录
16WORKDIR /app
17
18# 先复制 requirements.txt(利用 Docker 缓存层)
19COPY requirements.txt ./
20
21# 安装依赖
22RUN pip install --no-cache-dir \
23 --trusted-host mirrors.aliyun.com \
24 -i http://mirrors.aliyun.com/pypi/simple \
25 -r requirements.txt && \
26 # 清理临时文件
27 rm -rf /tmp/* /var/tmp/*
28
29# 复制项目代码
30COPY . .
31
32# 暴露端口
33EXPOSE 9001
34
35# 启动命令
36ENTRYPOINT ["python", "main.py"]
缓存
1# syntax=docker/dockerfile:1
2FROM python:3.12-slim
3
4# 设置元数据
5LABEL maintainer="hr-ai"
6LABEL description="人资智能检索系统 API 服务"
7
8# 设置环境变量
9ENV PYTHONUNBUFFERED=1 \
10 PYTHONDONTWRITEBYTECODE=1 \
11 PIP_DISABLE_PIP_VERSION_CHECK=1 \
12 PIP_DEFAULT_TIMEOUT=100
13
14# 设置工作目录
15WORKDIR /app
16
17# 先复制 requirements.txt(利用 Docker 缓存层)
18COPY requirements.txt ./
19
20# 安装依赖(使用 BuildKit 缓存挂载,自动处理跨平台)
21RUN --mount=type=cache,target=/root/.cache/pip \
22 pip install \
23 --trusted-host mirrors.aliyun.com \
24 -i http://mirrors.aliyun.com/pypi/simple \
25 -r requirements.txt && \
26 rm -rf /tmp/* /var/tmp/*
27
28# 复制项目代码
29COPY . .
30
31# 暴露端口
32EXPOSE 9001
33
34# 启动命令
35ENTRYPOINT ["python", "main.py"]
不要在 FROM 中使用 --platform=linux/amd64,而是在构建时指定
1docker buildx build \
2 --platform linux/amd64 \
3 --load \
4 -t hr-ai:1.1.48 .