久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

基于Docker鏡像部署go項目的方法步驟

瀏覽:170日期:2024-11-21 14:30:24

依賴知識

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文件,再在里面新建app,script兩個文件。把上一步的main程序放到app文件夾里面,在script里面新建一個build.sh腳本文件,文件內容先不管,等下會說。具體的文件結構是這樣。

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

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

FROM golangMAINTAINER 謙益WORKDIR /go/src/COPY . .EXPOSE 80CMD ['/bin/bash', '/go/src/script/build.sh']

這里解釋下:

FROM 是集成自哪個鏡像,我們是go程序官方提供了一個golang這樣的鏡像,我們可以直接使用。

MAINTAINER 是維護這名字。

WORKDIR 工作目錄。

COPY 這是一個復制命令,把本地的所有文件復制到工作目錄下。

EXPOSE 這是對方開發的端口,我默認是開放80端口,這里可根據實際情況修改

CMD 執行一個帶參數的命令,我這樣寫,是為了讓鏡像啟動時去執行script/build.sh的腳本,這個腳本里面是寫的啟動go程序的命令。

這里我把內容粘貼出來:

#!/usr/bin/env bashcd /go/src/app/ && ./main

就這兩行。

五、編譯我們自己的鏡像

這屬于Docker的知識了,我把命令粘貼出來。

docker build -t go-web . 這個命令執行,如果本地沒有 golang 這個鏡像的話,他會自己先去官方鏡像庫拉取這個鏡像再編譯,我們靜靜的等他就行 go-web這個參數是你最后編譯后的鏡像名字,可以隨意修改,也可以加上版本號比如: go-web:v1。

基于Docker鏡像部署go項目的方法步驟

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

基于Docker鏡像部署go項目的方法步驟

六、編寫 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

來查看下是否啟動成功了。

現在訪問http://127.0.0.1:8099 就能訪問我們的go程序了。

到此這篇關于基于Docker鏡像部署go項目的方法步驟的文章就介紹到這了,更多相關Docker鏡像部署go項目內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Docker
相關文章:
主站蜘蛛池模板: 精品少妇一区二区三区日产乱码 | 一区二区中文字幕 | 欧美激情a∨在线视频播放 成人免费共享视频 | 中文字幕在线一区 | 国产高清视频在线 | 中文字幕在线导航 | 国产欧美一区二区精品性色 | 99久久久国产精品 | 91夜夜 | 久久久久国产精品免费免费搜索 | 欧美午夜三级视频 | 日韩欧美视频一区二区三区 | 日韩视频一区二区 | 国产精品毛片一区二区在线看 | 成人在线播放网站 | 久久日韩 | 91在线免费看 | 日韩欧美在线观看视频网站 | 欧美国产日韩精品 | 91丁香婷婷综合久久欧美 | 亚洲免费视频在线观看 | 91久久精品久久国产性色也91 | 久久久性色精品国产免费观看 | 四虎久久精品 | 黄色免费网站在线看 | 国产一区二区精品在线 | 欧美国产日韩一区 | 亚洲精品一区中文字幕乱码 | 亚洲国产高清高潮精品美女 | 亚洲免费在线观看 | 成人亚洲 | 欧美一区二区三 | 国产成人久久精品一区二区三区 | 欧美一级网站 | 欧美激情第二页 | 亚洲在线免费观看 | 亚洲综人网 | 99精品欧美一区二区三区 | 久久精品| 91久久国产综合久久 | 一区二区毛片 |