现在我在 docker 内部有一个 c 艹的应用用 bazel 编译,里面有很多第三方依赖,比如 gflags、opencv、gtest、blas、caffe 等等
然后我们需要自己编译一个修改过版本的 caffe,之前是在在 docker 外部编译好 caffe,
然后把对应的头文件和.so 拷入 docker 镜像内部,也能运行。但是今天发现不对,因为 caffe 也依赖了 blas 等库,在外面 build 的 caffe 依赖的 blas 等库的版本可能不一样,拷进去恰好能运行只是刚好依赖的版本接近,从原理上来说是有风险的。。。同样的 tensorflow 也有这个问题
解决方案无非 2 种:1,编译静态链接的 caffe 和 tf 2,第二就是把 caffe 和 tf 搬到 docker 内部的 bazel 工程里,统一用 bazel 编译
我这个分析对么?