参考答案
结论:用多阶段构建并将不变依赖库固化到基础镜像或利用层缓存避免重复编译。方案:1.多阶段:第一阶段FROM编译镜像构建依赖库和二进制,第二阶段FROM精简运行镜像COPY产物;2.若依赖库不变,先将其编译成独立基础镜像(如mydeps:1.0),后续Dockerfile FROM mydeps再编应用,跳过库编译;3.利用Docker层缓存:先COPY依赖描述文件(如CMakeLists),RUN安装/编译库,再COPY源码,只要库文件不变则缓存命中;4.使用BuildKit缓存挂载(--mount=type=cache)。