对于代码使用卷,这是一个docker最佳实践吗?
你会将你的代码存储在卷中吗? 比如你的jar文件.在不重建映像的情况下部署应用程序可能会有点方便. 最佳答案
我不建议在Dockerfile中使用VOLUME语句来处理当前版本的docker(当前是引入命名卷以来的任何版本的docker).包含VOLUME命令有多个缺点,包括:
>可能无法使用任何后续步骤或子图像更改图像位置的内容(此行为在不同场景和不同版本的docker中似乎不同) 我建议将数据放在您在docker run命令行或docker-compose.yml中定义的卷中.在那里定义的卷可以有一个名称或映射回到docker主机上的路径.您可以创建任何文件夹或文件卷,而无需在Dockerfile中定义它.此步骤中定义的卷不会影响图像,允许您扩展图像,而不会被锁定而无法更改目录. 对于您的代码,如果在应用程序开发期间解释(例如javascript)或已编译(例如jar文件),则将代码注入卷是一种常见的最佳实践.您将在容器(而不是Dockerfile)上定义卷,并使用相同的文件名覆盖也复制到映像中的代码或二进制文件.这使您可以快速迭代开发而无需频繁重建映像.根据应用程序的不同,您可以重新加载代码,否则,重新启动容器应该是查看最新更改所需的全部内容.开发完成后,您可以使用当前代码重建映像,并将其发送给可以使用它的人,而无需代码的卷装入. 如果您想了解更多细节,我还有blogged about my concerns with volumes inside of Dockerfiles. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |