Docker部署Golang程式方法

來源:互聯網
上載者:User

之前我寫過如何部署Golang程式到伺服器,這次咱們來寫寫怎麼利用Docker來部署我的Golang,當然如果要部署到Docker裡面,Docker是必須安裝的,可以點擊這裡查看安裝步驟。

文/謙益

這篇文章可能不太適合對go和Docker零基礎人士閱讀,需要有一定的基礎知識。

依賴知識

  • Go交叉編譯基礎
  • Docker基礎
  • Dockerfile自訂鏡像基礎
  • docker-compose編排檔案編寫基礎

當然,一點也不會也可以按照這個步驟部署完成,不過可能中間如果出點小問題,會不知道怎麼解決,當然你也可以留言。

我是在mac環境上開發測試的,如果你是在windows上可能有一點出入,但應該不會有啥大問題。

一、依賴環境

  • Docker

二、編寫一個GoLang web程式

我這裡就寫一個最簡單的hello world程式吧,監聽連接埠是80連接埠。
建立一個main.go檔案,內容如下:

package mainimport (    "fmt"    "log"    "net/http")func sayHello(w http.ResponseWriter, r *http.Request) {    fmt.Fprintf(w, "hello world")}func main() {    http.HandleFunc("/", sayHello)//註冊URI路徑與相應的處理函數    log.Println("【預設項目】服務啟動成功 監聽連接埠 80")    er := http.ListenAndServe("0.0.0.0:80", nil)    if er != nil {        log.Fatal("ListenAndServe: ", er)    }}

三、編譯成linux下的程式包

我是在mac上開發的,需要用到go的交叉編譯,如果對交叉編譯不熟悉的,可以查下文檔,或者直接複製我下面的命令進行編譯。
我們是要跑在Docker裡面,基礎 golang這個鏡像跑的,所以需要把他編譯成相容 i386 處理器的程式。

sudo env GOOS=linux GOARCH=386 go build main.go

這個編譯完成後,本地會多出一個 main 程式,暫時不用管它備用就行。

四、使用 Dockerfile 定製我們go程式的鏡像

建立一個檔案夾,裡面建立一個Dockerfile檔案,再在裡面建立appscript兩個檔案。把上一步的main程式放到app檔案夾裡面,在script裡面建立一個build.sh指令檔,檔案內容先不管,等下會說。
具體的檔案結構是這樣。

.├── Dockerfile├── app│   └── main└── script    └── build.sh

下面就是編寫Dockerfile檔案內容了,內容我先上代碼:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.