怎样构建Golang Dockerfiles?

Docker提供了一些出色的构建时功能和基本映像,我们可以用它们来实现轻量、安全和高效的应用程序构建。

本文会介绍为什么Golang可以很好地展示这些特性,因为Golang可以编译为单个二进制文件(或一组二进制文件)。这篇文章的示例所关注的焦点是极简主义。尽管这些示例很基础,但它们非常重要,你可以在这些概念基础上为大型Golang项目引入更多最佳实践,以提高安全性和效率。

我们将使用这个简单的main.go来演示本文的概念:

package main 
import "fmt" 
func main() { 
 fmt.Println("Hello Cloudreach!") 
} 

最少的层带来效率最大化:最佳实践

Docker在Dockerfile文档中一上来就强调:尽量减少层数是一个最佳实践!这是一个重要的概念,必须从一开始就做好。

你很容易就能写一个包含很多层的Dockerfile——它的语法就有这个倾向——结果你不知不觉中就会写出很多效率低下的内容。最佳实践是将构建的相关阶段分组和链接在一起,例如下载依赖项、供应商文件夹集成或使用RUN命令设置构建环境等阶段。

你还需要考虑分组的哪些部分是可以经常更改的,然后将它们分组到Dockerfile中尽可能低的层,同时把静态构建依赖项、构建环境配置或应用程序资产放到Dockerfile中尽可能上层的位置上。

原文链接:【https://www.infoq.cn/article/cZRp8lJTtdgxaNfYcRTw】。未经作者许可,禁止转载。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章