中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

本地如何使用Docker搭建go開發環境

發布時間:2022-07-20 13:41:46 來源:億速云 閱讀:191 作者:iii 欄目:開發技術

本篇內容介紹了“本地如何使用Docker搭建go開發環境”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    安裝

    1.docker安裝

    我使用的是macOS Big Sur,在docker官網上下載對應的dmg包,也有docker desktop

    接下來等待安裝,安裝的步驟就不贅述了,比較簡單

    完成后,打開終端,輸入,docker ,出現相關命令信息,表示安裝成功!

    2.go安裝

    docker完成之后,可以到docker hub(https://hub.docker.com/)上找go的鏡像

    我使用目前go的新版go 1.18.1,找的鏡像是 golang:1.18.1-buster,拉取:

    docker pull golang:1.18.1-buster

    經過等待之后,完成下載

    docker images命令可以查看本地所有的鏡像,可以看到golang的鏡像已經在了,接下來就可以操作了

    運行這個鏡像:

    docker run -d --privileged=true golang

    出現類似于”24bbe436b43ea9dd1da0e…“一串,說明啟動成功

    進入容器:

    docker exec -it 24bbe436

    注意:這里的容器ID是我的,你可以用容器名字或者容器ID進入

    3.配置

    進入容器后,接下來就是設置go的env環境變量,首先用:

    go env

    既是為了驗證go是否可以正常運行,也是為了查看下當前go的環境變量的情況

    一般初始化下,go需要自定義設置的就三個GOPATH、GOPROXY和GO111MODULE

    • GOPATH:go工作目錄,也是以后代碼存放的地方

    • GOPROXY:go包下載代理地址,為了下載包快速所改

    • GO111MODULE:允許go mod 包管理工具的使用

    三行代碼解決!!

    go env -w GO111MODULE=on #開啟go mod
    go env -w GOPROXY="https://goproxy.cn"
    go env -w GOPATH="/go"  #如果本身就是,那就不需要再改了,可以省略

    查看下,再次 go env,是否已修改為設置的這樣

    自此,所有設置都完成,為了以后不重復進行設置,我們保存容器生成我們自己部署好的go環境鏡像:

    docker commit 24bbe43 golang-local

    我將此容器重新打包為一個新的鏡像,命名為golang-local,以后只要開啟這個鏡像,我就可以跑go代碼了,當然,也可以將它傳到遠程hub庫,用于整個項目組的基本環境搭建使用,以后協同開發的鏡像都是統一的,生產也可以使用。

    遠程庫建議使用阿里云的,具體的可以自行百度,這里就不展開了

    好了,現在 docker images就可以查看到我打包的新的golang鏡像,這也為后續與本機代碼的使用奠定基礎,接下來就是最關鍵的一步了。

    4.運行

    以上所有的步驟都是在docker里完成的,那么我們的本機與docker之間還存在著隔閡,本機放置的代碼依然無法使用go環境,因為本機沒有安裝go,這個時候就需要用到docker經典的東東——掛載容器卷,將本地的目錄與docker的容器關聯起來,達到本地修改容器內的文件也可以同步修改,開始!!

    先關閉之前的golang容器,docker stop 24bbe43,因為我們不需要用到它了!

    然后開啟我們新鏡像

    docker run -itd -p 8080:8080 -v /Users/jay/go/project:/go --name golang-1.18.1 golang-local

    解釋下關鍵的命令參數:

    • -p:端口映射,將docker的端口映射到本機端口,我們用8080

    • -v:掛載容器卷,冒號前面是本機的地址,后面是容器內存放地址,這里需要看你本地想放哪里,任意位置都可以,前提是需要寫絕對路徑,注意啊,我加粗字體了。

    • –name:容器別名,我主要是為以后多版本處理的話,可以看到當前容器的go版本,所以這么寫,這個可以省略

    好了,這樣就開啟了,至于說為什么是用8080,這個不需要固定,可以任意改你想要的端口號,也有個前提,與本地應用軟件的使用端口不要沖突!!!

    我用8080是因為我的goweb服務框架gin的默認端口就是8080,方便使用

    接下來就是用gin來驗證環境好不好用了

    5.完成

    在我的工作目錄/Users/jay/go/project下,

    建一個項目,就叫gin-demo吧,

    然后進入gin-demo,創建一個main.go文件,

    寫上:

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println("Hello, Go.")
    }

    回到容器里查看下,對應的/go目錄下是不是也存在相同的文件了,做個驗證

    然后開始,在容器里操作,

    進入到gin-demo目錄下,

    先驗證下go代碼能不能跑起來

    go run main.go

    出現Hello,Go. 說明正常可以跑代碼了,到此處,go環境算是搭建完了。

    因為我需要用的是gin框架,所以接下的事情就是gin框架的使用

    go mod init創建go.mod文件,

    然后將main.go的內容改為以下:

    package main
    
    import "github.com/gin-gonic/gin"
    
    func main() {
        r := gin.Default()
    
        r.GET("/ping", func(c *gin.Context) {
            c.JSON(200, gin.H{
                "message": "pong",
            })
        })
        r.Run()
    }

    最后一步,go run main.go跑起來!!

    接下來就是見證奇跡的時刻

    打開瀏覽器,輸入localhost:8080,回車!

    瀏覽器上顯示 pong,成功!

    PS:go的代碼運行還是需要在容器里操作,如果不想來回進出容器折騰,可以用go的一個fresh包,自動捕獲代碼變動重新打包運行,本地就可以快樂的寫代碼了,這個插件百度查下就行,這里分享一下包地址,就不細說了,我個人習慣自己去重啟,比較不容易出錯

    go熱重啟go get github.com/pilu/fresh

    運行 fresh 命令 ,fresh 將會自動運行項目的 main.go

    “本地如何使用Docker搭建go開發環境”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    余姚市| 蒙城县| 阳泉市| 天台县| 宁化县| 东港市| 云安县| 盘山县| 阿拉尔市| 桂林市| 靖江市| 渭南市| 桐庐县| 三河市| 紫金县| 齐齐哈尔市| 巍山| 金坛市| 兴宁市| 承德市| 宁安市| 衡东县| 贵港市| 湘阴县| 崇仁县| 宜黄县| 靖宇县| 正镶白旗| 平阳县| 湖口县| 桦南县| 楚雄市| 南溪县| 武陟县| 吉林省| 日喀则市| 浦北县| 洮南市| 新竹市| 镇平县| 迁西县|