我正在寻找一种使用 python 和 Dockerfile 创建多阶段构建的方法:
例如,使用以下图像:
第一张图片:安装所有编译时要求,并安装所有需要的 python 模块
第二张图片:将所有编译/构建的包从第一张图片复制到第二张图片,没有编译器本身(gcc、postgers-dev、python-dev 等)
最终目标是拥有一个较小的图像,运行 python 和我需要的 python 包。
简而言之: 我如何“包装”在第一个图像中创建的所有已编译模块(站点包/外部库),并 以“干净”的方式将它们复制 到第二个图像。
原文由 gCoh 发布,翻译遵循 CC BY-SA 4.0 许可协议
好的,所以我的解决方案是使用 wheel,它允许我们在第一个图像上编译,为所有依赖项创建 wheel 文件并将它们安装在第二个图像中,而无需安装编译器
您可以在以下博客文章中看到我对此的回答
https://www.blogfoobar.com/post/2018/02/10/python-and-docker-multistage-build