Tag: cpan

在维护Docker镜像时,如何处理Perl模块更新?

我正在构build一个docker镜像,以便能够运行我们所有的Perl应用程序。 应用程序需要安装数百个CPAN模块。 docker图像的完整版本需要大约一个小时才能完成。 做完初始图像之后,我不确定如何最好地处理正在进行的更新。 我们可以在git中保留一个Dockerfile,然后根据需要进行修改,并将新的构build推送到dockerhub。 但是,如果构build的人没有全部的中间映像,那么添加一个CPAN模块可能是一个非常单调乏味的过程,他们甚至可能需要一个小时才能知道新模块是否安装正确。 另外,它会再次下载每个CPAN模块,这似乎有点冒险,因为新模块可能会发生突变。 或者,进行构build的人可以拖动最新的docker-hub镜像,然后以交互方式安装cpan模块,提交构build并将新镜像推送到dockerhub。 但是,我们只有我们的dockerhub图像,但不是主要的Dockerfile。 或者,另一个选项是为每个新的构build创build一个Dockerfile,它引用了以前的dockerhub映像。 这似乎过于复杂,但。 选项1)似乎是错误的。 我相当肯定,我们不希望从基本操作系统重build整个映像只是为了安装一个额外的模块。 然而,依赖于没有Dockerfiles的图像似乎也是有风险的。