基於Docker映象部署go專案的方法步驟

2022-09-24 18:33:10 字數 2243 閱讀 3192

依賴知識

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

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

一、依賴環境

二、編寫乙個golang web程式

我這裡就寫乙個最簡單的hello world程式吧,監聽埠是80埠。

新建乙個main.go檔案,內容如下:

}三、編譯成linux下的程式包

我是在mac上開發的,需要用到go的交叉編譯,如果對交叉編譯不熟悉的,可以查下文件,或者直接複製***的命令進行編譯。

我們是要跑在docker裡面,基礎golang這個映象跑的,所以需要把他編譯成相容i386處理器的程式。

sudo env goos=linux goarch=386 go build main.go

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

四、使用 dockerfile 定製我們go程式的映象

新建乙個資料夾,裡面新建乙個dockerfi檔案,再在裡面新建app,script兩個檔案。把上一步的main程式放到app資料夾裡面,在s程式設計客棧cript裡面新建乙個build.sh指令碼檔案,檔案內容先不管,等下會說。

具體的檔案結構是這樣。

.├── dockerfile

├── app

│ └── main

└── script

└── build.sh

下面就是編寫dockerfile檔案內容了,內容我先上**:

from golang

maintainer 謙益

workdir /go/src/

copy . .

expose 80

cmd ["/bin/bash", "/go/src/script/build.sh"]

這裡解釋下:

from是整合自哪個鏡mtbyiqogle像,我們是go程式官方提供了乙個golang這樣的映象,我們可以直接使用。

maintainer是維護這名字。

workdir工作目錄。

copy這是乙個複製命令,把本地的所有檔案複製到工作目錄下。

expose這是對方開發的埠,我預設是開放80埠,這裡可根據實際情況修改

cmd執行乙個帶引數的命令,我這樣寫,是為了讓映象啟動時去執行script/build.sh的指令碼,這個指令碼裡面是寫的啟動go程式的命令。

這裡我把內容貼上出來:

#!/usr/bin/env bash

cd /go/src/app/ && ./main

就這兩行。

五、編譯我們自己的映象

這屬於docker的知識了,我把命令貼上出來。

docker build -t go-web .

看到上面這個輸出,就說明編譯成功了,在你的本地映象裡面就有了乙個名為go-web的映象。可以使用docker images進行查詢:

六、編寫 docker-compose.yml 檔案

到這裡屬於我們的最後一步了,如果用我們剛編譯的go-web來執行我們的go程式:

version: '2'

networks:

basic:

services:

world:

container_name: world

image: go-web

ports:

- "8099:80"

volumes:

- ./app/go/world:/go/src/app:rw

networks:

- basic

到這裡我們的編排檔案已經寫好了,現在只需要用docker-compose來啟動我們的編排檔案就好,啟動命令如下:

docker-compose -f docker-compose.yml up -d world

如果輸出下面的提示,說明啟動成功了。

creating world ... done

啟動成功後你可以再用

docker ps

來檢視下是否啟動成功了。

現在訪問就能訪問我們的go程式了。

基於Docker映象部署go專案

我是在mac環境上開發測試的,如果你是在windows上可能有一點出入,但應該不會有啥大問題。我這裡就寫乙個最簡單的hello world程式吧,監聽埠是80埠。新建乙個main.go檔案,內容如下 我是在mac上開發的,需要用到go的交叉編譯,如果對交叉編譯不熟悉的,可以查下文件,或者直接複製 的...

docker部署go環境

最近找工作有點忙,php開發感覺遇到瓶頸了。boss直聘上面搜尋後端開發,很多大公司都是招golang開放工程師,也可能引發了phper的憂慮。於是就有了學習golang開發的想法 玩過docker的可以略過,因為比較簡單 當前是在win10作業系統,並且安裝了docker 的,可以嘗試著玩一玩 1...

docker 部署go專案

想部署乙個html轉pdf的web專案,需要安裝chorme瀏覽器,想著docker可以一次打包映象,無限使用的特點,用了下docker來部署。首先,我需要乙個裝了chrome和go的映象。沒有現成的,我在go映象的基礎上打包了乙個新的。步驟如下。1,拉取go映象。docker pull golan...