好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 基于Docker鏡像部署go項目的方法步驟

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

熱門標簽:宜賓銷售外呼系統軟件 高德地圖標注公司需要錢 濰坊寒亭400電話辦理多少錢 四川保險智能外呼系統 外呼系統全國 地圖標注能更改嗎 廈門防封電銷電話卡 云南電商智能外呼系統哪家好 地圖標注員有發展前景嗎

依賴知識

  • Go交叉編譯基礎
  • Docker基礎
  • Dockerfile自定義鏡像基礎
  • docker-compose編排文件編寫基礎

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

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

一、依賴環境

  • Docker

二、編寫一個GoLang web程序

我這里就寫一個最簡單的hello world程序吧,監聽端口是80端口。
新建一個main.go文件,內容如下:

package main
import (
  "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文件內容了,內容我先上代碼:

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

這里解釋下:

FROM 是集成自哪個鏡像,我們是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 .
  • 這個命令執行,如果本地沒有 golang 這個鏡像的話,他會自己先去官方鏡像庫拉取這個鏡像再編譯,我們靜靜的等他就行
  • go-web這個參數是你最后編譯后的鏡像名字,可以隨意修改,也可以加上版本號比如: go-web:v1

看到上面這個輸出,就說明編譯成功了,在你的本地鏡像里面就有了一個名為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

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

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

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

標簽:德州 湛江 滁州 紅河 巴彥淖爾 廣安 廊坊 回訪

巨人網絡通訊聲明:本文標題《基于Docker鏡像部署go項目的方法步驟》,本文關鍵詞  基于,Docker,鏡像,部署,項,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于Docker鏡像部署go項目的方法步驟》相關的同類信息!
  • 本頁收集關于基于Docker鏡像部署go項目的方法步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: hezyo加勒比一区二区三区| 亚洲精品久久精品| 免费人成网站www?549tv| 一个没有穿衣服的女人| 亚洲 成人 综合 另类 一区二区| 贵妃挨脔日常NP| 欧美精品第9页| 口述被男生摸下面的过程| 成人??色情美女裸体的软件| 国产综合成人久久大片91| gay裸美国老汉gay| 国产高清网站| 韩国三级午夜理伦三级三| tickle乳尖vk美女| 欧美日韩性生活| 日韩伦理电影中文在线观看免费网站大全视频 | www日韩| 91在线无码精品秘?比基尼| 玉蒲团电影| 亚洲国产日韩欧美在线a乱码| 久久有码中文字幕| 局长含了一整晚我的奶头| 欧美荫道BBWBBW视频| 成熟婬乱偷窥毛多女| 三宝局长爽玩许婷| 纯欧美一级毛片观看| 口述我和小莹的性过程| 抱抱我| 中国丰满熟女ⅩXXXX视频| 老师洗澡时让我进去摸她那个| 99久久99热这里只有精品| 韩国尺度最大的电影在线观看| 国产自在自线午夜精品之la| 操女人b视频| 日韩a级毛片免费视频| 高跟91????白丝| 高潮岳喷我一脸| 娇妻满足绿帽瘾| 亚洲影院一区| 《熟妇的荡欲》免费看| 免费看A片秘?免费麻豆|