热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

是否有人将所有内容写入DockerFile而不是单独的shell脚本?

如何解决《是否有人将所有内容写入DockerFile而不是单独的shell脚本?》经验,为你挑选了1个好方法。

我不知道RUN x && y && z ...我们目前在DockerFile中使用的语法.据我所知,我可以只运行一个shell脚本RUN xyz.sh,并在我最喜欢的语言上执行相同的任务.后者有不利之处吗?



1> Siyu..:

更新:

除了大卫关于复杂性的观点之外,我相信将所有内容写入Dockerfile会使共享变得更容易(从而为您创造生存偏见).即在DockerHub上,大多数情况下,您都有一个"Dockerfile"选项卡,可以快速了解图像的构建方式.如果作者使用COPYRUN xyz.sh,他/她将不得不在其他地方托管脚本,或者单独的Dockerfile变得毫无意义.


CMD在运行时执行,即从图像创建容器.RUN是构建时间指令.所以问题实际上是人们为什么RUN而不是CMD在运行时运行.(你当然也可以COPY script.sh /script.shRUN bash /script.sh)

    如果您执行安装依赖项之类的操作,则可能需要花费大量时间,如果扩展您的服务,这会使自动扩展无用,因为它无法快速吸收峰值.

    在构建时,RUN可以缓存,因此下次构建会快得多.

    由于docker文件系统的工作方式,从同一个映像创建10个容器只需要比创建1个容器多一些空间.因此,您可以通过在映像中安装软件包来节省磁盘空间,而如果在运行时安装它们,它们将占用磁盘空间的一部分.


没有什么可以阻止你在shell脚本中复制并运行它,这可能是一个很好的混合解决方案(获得RUNning命令的好处来构建静态图像并且还具有"普通"shell脚本).IME在典型的Dockerfiles中的各种shell命令并不是那么复杂.
推荐阅读
author-avatar
子幽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有