拿下技术面上传简历

一个 Python 服务的 Dockerfile 是:FROM python:3.11 → COPY . /app → RUN pip install -r requirements.txt。本地改一行业务代码,CI 上重新构建镜像要 8 分钟,其中 7 分半花在装依赖上。请给出你会怎么改这个 Dockerfile、改完之后改一行代码的重建时间大概是多少,以及这套改法还有什么坑你没解决。

工程与系统设计代码与工程3-5 年知识点 1 个

面试官在考什么

判断他是否理解镜像分层缓存失效的条件(而不是只会说「多阶段构建」四个字),能否给出可量化收益的改法,并知道构建缓存之外镜像体积、安全、可复现性的问题。

Docker

回答框架 · 前两步

  1. 根因:COPY . 放在 pip install 之前,任何源码改动都会让 COPY 这一层的缓存失效,后面的 pip install 层跟着全部重跑。
  2. 改法:先只 COPY 依赖清单(requirements.txt / pyproject.toml + lock),再 RUN pip install,最后才 COPY 源码;依赖没变时这段缓存命中,重建只剩拷贝源码这一层。

还有 3 条答案要点、 3 层追问、 4 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

同一能力域的其他题