怎樣構建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】。未經作者許可,禁止轉載。

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