日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

快速初始化容器化Gin項目

來源: 責編: 時間:2024-01-15 09:20:27 200觀看
導讀Gin是一個使用Go語言開發的Web框架,追求性能和效率。1、使用Gin快速初始化項目(1) 創建項目目錄:在命令行中創建一個新目錄,用于存放項目文件。然后進入該目錄:mkdir my-gin-democd my-gin-demo(2) 初始化 Go 模塊:在項目

Gin是一個使用Go語言開發的Web框架,追求性能和效率。bfI28資訊網——每日最新資訊28at.com

bfI28資訊網——每日最新資訊28at.com

1、使用Gin快速初始化項目

(1) 創建項目目錄:在命令行中創建一個新目錄,用于存放項目文件。然后進入該目錄:bfI28資訊網——每日最新資訊28at.com

mkdir my-gin-democd my-gin-demo

(2) 初始化 Go 模塊:在項目目錄中運行以下命令以初始化 Go 模塊。這會創建一個 go.mod 文件,用于管理項目依賴。bfI28資訊網——每日最新資訊28at.com

go mod init github.com/your-username/my-gin-demo

(3) 安裝 Gin 框架:下載并安裝 Gin 框架。這個命令會把 Gin 框架作為項目依賴下載到本地。bfI28資訊網——每日最新資訊28at.com

go get -u github.com/gin-gonic/gin

(4) 創建并編輯 main.go 文件:在項目目錄中創建一個 main.go 文件,并添加以下示例代碼:bfI28資訊網——每日最新資訊28at.com

package mainimport (  "fmt"  "github.com/gin-gonic/gin"  "net/http"  "time")func main() {  r := gin.Default()  r.Use(MiddleWare())  v2 := r.Group("v2")  {    v2.POST("loginJSON", loginJSON)  }  r.Run(":8083")}func MiddleWare() gin.HandlerFunc {  return func(c *gin.Context) {    t := time.Now()    fmt.Println("中間件開始執行了")    c.Set("request", "中間件")    // 執行路由對應的函數    //c.Next()    status := c.Writer.Status()    fmt.Println("中間件執行完畢", status)    t2 := time.Since(t)    fmt.Println("time:", t2)  }}func loginJSON(c *gin.Context) {  var loginInfo Login  if err := c.ShouldBindJSON(&loginInfo); err != nil {    c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})    return  }  if loginInfo.User != "root" || loginInfo.Password != "admin" {    c.JSON(http.StatusBadRequest, gin.H{"status": "304"})    return  }  c.JSON(http.StatusOK, gin.H{"status": "200"})}type Login struct {  User     string `json:"username" binding:"required"`  Password string `json:"password" binding:"required"`}

(5) 構建項目:在項目目錄my-gin-demo下執行命令編譯項目:bfI28資訊網——每日最新資訊28at.com

go build -o server .

執行完畢后,會得到`server`可執行文件。可以直接運行此文件。也可以按照下面方式運行項目。bfI28資訊網——每日最新資訊28at.com

(6) 運行項目:在命令行中執行以下命令來運行你的項目:bfI28資訊網——每日最新資訊28at.com

go run main.go

這將啟動 Gin 服務器,默認監聽 `8083` 端口。bfI28資訊網——每日最新資訊28at.com

現在,已經初始化了一個簡單的使用 Gin 框架的 Golang 項目。你可以根據需求進一步開發和擴展這個項目。bfI28資訊網——每日最新資訊28at.com

2、項目容器化

項目已經初始化完畢,接下來將Gin項目打包成Docker鏡像,然后以容器化的方式運行。bfI28資訊網——每日最新資訊28at.com

(1) 編寫Dockerfile:在項目根目錄下,增加Dockerfile,內容如下:bfI28資訊網——每日最新資訊28at.com

# 使用官方的 Golang 鏡像作為基礎鏡像FROM golang:1.19# 設置工作目錄WORKDIR /data/golang/my-gin-demo# 將本地文件復制到容器中COPY . .# 使用 Go Modules 下載依賴  編譯項目RUN go env -w GO111MODULE=on /   && go env -w GOPROXY=https://goproxy.cn,direct /   && go env -w CGO_ENABLED=0 /   && go mod download /   && go mod tidy /   && go build -o server .# 最終鏡像使用輕量的 alpine 鏡像FROM alpine:latest# 添加作者LABEL MAINTAINER="baily@gmail.com"# 設置工作目錄WORKDIR /data/golang/my-gin-demo# 將二進制文件從前一個鏡像中復制到這里COPY --from=0 /data/golang/my-gin-demo/server ./# 暴露端口EXPOSE 8083# 啟動應用程序ENTRYPOINT ./server

(2) 構建鏡像:構建鏡像,這里的harbor.dev.mangod.com/golang/my-gin-demo是鏡像名稱,harbor.dev.mangod.com是自定義的harbor倉庫地址,golang是harbor倉庫里的項目組。bfI28資訊網——每日最新資訊28at.com

# 構建鏡像docker build -t harbor.dev.mangod.com/golang/my-gin-demo:0.0.1 .

(3) 推送鏡像bfI28資訊網——每日最新資訊28at.com

# 推送鏡像docker push harbor.dev.mangod.com/golang/my-gin-demo:0.0.1

(4) 拉取鏡像并且啟動容器bfI28資訊網——每日最新資訊28at.com

# 拉取鏡像并且啟動容器docker run -d -p 8083:8083 harbor.dev.mangod.com/golang/my-gin-demo:0.0.1

(5) 查看日志bfI28資訊網——每日最新資訊28at.com

docker logs -f 容器ID

至此,Gin項目已經打包成Docker鏡像,并且以容器化的方式運行了。bfI28資訊網——每日最新資訊28at.com

3、項目地址

https://github.com/yclxiao/my-gin-demo.gitbfI28資訊網——每日最新資訊28at.com

4、總結

本文主要聊了,如何使用Gin快速初始化一個項目,再將Gin項目打包成鏡像,最后以容器化的方式運行。bfI28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-60944-0.html快速初始化容器化Gin項目

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 從錯誤中學習: 了解Go編程的六個壞習慣

下一篇: 在Go中構建復雜對象: 構建器模式指南

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 灵石县| 呼和浩特市| 平邑县| 河东区| 巴东县| 修文县| 淮安市| 莱西市| 会东县| 乐平市| 合阳县| 崇礼县| 厦门市| 小金县| 深水埗区| 青岛市| 马关县| 岳普湖县| 清河县| 临江市| 汉中市| 益阳市| 梁山县| 平湖市| 饶阳县| 临江市| 武功县| 都安| 渑池县| 文山县| 青浦区| 博乐市| 吴旗县| 通化县| 融水| 莫力| 石泉县| 宝坻区| 云和县| 乃东县| 抚顺市|