背景
在维护一堆开源软件,因为需要比较固定可靠的编译环境,所以之前导入了 Docke,在 Dockerfile 里拉操作系统装依赖签出源码然后编译。编译完成后 run 一秒复制出成品然后销毁。
每次开源软件更新时,重新 pull 底层操作系统镜像,重新构建编译环境,然后重新编译和打包发布。当然,新的系统发布的时候也是要为新系统编译的。
问题
单纯使用 Dockerfile build 从零到编译完是否是最佳实践?
记得以前还看到过一个做法是 build 只准备环境,然后用 run 来编译。这种方式是不是更好的实践?
两种做法各有什么利弊吗?
延伸
接下去打算发展 Docker for Windows,因为还要编译很多 Windows 下的开源项目。大家使用过程中有踩到什么坑吗?
