For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在通过自学或者学习达内的全日制脱产课程来进行培训,下面我们就通过案例分析来了解一下具体情况吧。
不要将代码或应用级的依赖项放入镜像中
你的主Dockerfile文件,也就是运行应用程序所需的文件,应该包含运行应用程序所需的所有软件,但不应该包含应用程序代码本身——当docker-composerun命令开始执行时,它们将被挂载到容器中,并在容器和本地机器之间进行同步。
另外,区分系统级依赖项(如ImageMagick)和应用级依赖项(如Rubygems和NPM包)也很重要——前者应该包含在Dockerfile中,后者不应该。将应用级依赖项放到镜像中意味着每次有人添加新依赖项时都必须重新构建镜像,这既耗时又容易出错。相反,我们应该将这些依赖项作为启动脚本的一部分。
非必要不使用Dockerfile
基于一点,你可能会发现根本不需要编写Dockerfile文件。如果你的应用程序没有任何特殊的依赖项,可以将docker-compose.yml的入口指向官方的Docker仓库(如ruby:2.7.6)。这样做并不常见——大多数应用程序和框架都需要一定数量的镜像基础(例如,Rails需要Node),但如果你发现自己的Dockerfile只包含一个FROM行,你就可以不使用这个文件。
只在docker-compose.yml中引用一次Dockerfile
如果你将同一个镜像用于多个服务(你应该这么做),只需要在一个服务的定义中提供构建说明,给它起一个名字,然后在其他服务中引用这个名字。
这样,当我们在构建服务(使用docker-compose)时,镜像就只构建一次。如果我们省略image:指令同时复制build:,就会构建完全相同的镜像两次,这样会浪费磁盘空间和有限的时间。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。