在Docker容器中为python设置virtualenv是否有很好的理由?

几乎所有的python教程都build议将virutalenv设置为第一步以保持一致性。 在使用Docker容器时,为什么或者为什么不应该维护这个标准呢?

如果你打算在容器上只运行一个版本,并且它是容器的系统版本,那么在容器中使用virtualenv没有任何技术上的理由。 但是仍然可能有非技术性的原因。 例如,如果你的团队习惯在〜/ some-env中查找python库,或者比容器的lib更理解virtualenv结构,那么你可能想要继续使用virtualenv。

在“缺点”方面,现有系统python上的virtualenv可能会使您的图像稍大一些。

在使用docker时,采用微服务概念是有道理的。 使用微服务,每个微服务都与特定的业务function保持一致,并且只定义该业务function所需的操作。 这意味着每个应用程序都运行在一个或多个独立的Docker镜像中,并具有特定的依赖关系(python模块)。 这使得使用virtualenv不必要的。