最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang使用DockerFile正確用法指南

 更新時間:2024年03月16日 10:35:44   作者:寸?鐵  
docker在開發(fā)和運維中使用的場景越來越多,作為開發(fā)人員非常有必要了解一些docker的基本知識,而離我們工作中最近的也就是對應(yīng)用的docker部署編排了,這篇文章主要給大家介紹了關(guān)于golang使用DockerFile的正確用法指南,需要的朋友可以參考下

問題背景

今天寸鐵想讓編寫好的go程序在docker上面跑,要想實現(xiàn)這樣的效果,就需要用到今天的主角:Docker File,那怎么使用DockerFile呢?

那具體怎么做呢?其實很簡單,不過網(wǎng)上的博客的一些命令筆者實操過,發(fā)現(xiàn)不夠完善!

小伙伴們要想實現(xiàn),看筆者的正確食用指南即可,減少大量踩坑的時間。

編寫Dockerfile

在你要運行到容器的程序所在的文件夾創(chuàng)建Dockerfile之后復(fù)制如下內(nèi)容到創(chuàng)建的文件中。

FROM golang:latest

# 設(shè)置工作目錄
WORKDIR /app

# 復(fù)制 Go 程序源代碼到工作目錄
COPY dockerUper.go .

# 編譯 Go 程序
RUN go build -o dockerUper dockerUper.go

# 運行 Go 程序
CMD ["sh", "-c", "./dockerUper"]

dockerUper 替換為具體你編寫的文件名

文件夾的結(jié)構(gòu)如下:

創(chuàng)建鏡像

使用如下命令創(chuàng)建docker鏡像

docker build -t my-golang-app .

這里創(chuàng)建的鏡像名為my-golang-app 具體替換為你的命名

運行容器

使用如下命令運行Docker鏡像的容器

docker run --name mycontainer-12  my-golang-app

容器名為mycontainer-12 ,鏡像名為my-golang-app。
具體可以根據(jù)你的實際情況進行修改。
注意:run之后 下次的容器名不能重復(fù)?。?!

運行結(jié)果如下:

這樣就運行容器成功啦!

附:Go 使用Dockerfile構(gòu)建項目 mod 報錯處理

1.情景

正在使用Dockerfile構(gòu)建Go項目鏡像的時候,遭遇到了executor failed running [/bin/sh -c go mod tidy]: exit code: 2以及ERROR [internal] load metadata for docker.io/library/golang:1.19報錯,經(jīng)過一番折騰,終于解決,記錄一下!

2.一開始的Dockerfile

FROM golang:alpine as builder

WORKDIR /go/web-api

# 為我們的鏡像設(shè)置必要的環(huán)境變量
ENV GO111MODULE=on
ENV CGO_ENABLED=0
ENV GOPROXY=https://goproxy.cn,direct
ENV GOOS=linux
ENV GOARCH=amd64

COPY . .

RUN go mod tidy
RUN go build -o server .

3.解決方案

3.1第一個報錯executor failed running [/bin/sh -c go mod tidy]: exit code: 2

報錯內(nèi)容

------
 > [builder 4/5] RUN go mod tidy:
#8 0.275 go: unknown subcommand "mod"
#8 0.275 Run 'go help' for usage.
------

按照提示信息顯示,找不到命令.懷疑是golang:alpine低于當前項目的Go版本(當前項目1.19).于是嘗試更換成golang:1.19-alpine3.15,這次沒有mod的報錯了,但是有新的報錯.

3.2第二個報錯ERROR [internal] load metadata for docker.io/library/golang:1.19

------
 > [internal] load metadata for docker.io/library/golang:1.19-alpine3.15:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 1.19-alpine3.15]: 400 Bad Request

好像是鏡像問題,隨即查閱一番資料,得到結(jié)論,原來是Docker Desktop的設(shè)置問題,需要將setting->Docker Enginejson配置文件中的

"features": {
    "buildkit": true
  },

修改為false即可.

4.修改后結(jié)果

修改后重新運行docker build -t xxx/xxx .命令成功生成鏡像.希望能幫助到有相同問題的小伙伴^_^

總結(jié)

到此這篇關(guān)于golang使用DockerFile的文章就介紹到這了,更多相關(guān)golang使用DockerFile內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go中GoFrameMap轉(zhuǎn)換詳解

    Go中GoFrameMap轉(zhuǎn)換詳解

    本文詳細解析了Go語言中g(shù)conv.Map()方法的實現(xiàn)原理,該方法通過遞歸處理將各種數(shù)據(jù)類型轉(zhuǎn)換為map[string]any格式,感興趣的可以了解一下
    2026-05-05
  • Go語言循環(huán)遍歷含有中文的字符串的方法小結(jié)

    Go語言循環(huán)遍歷含有中文的字符串的方法小結(jié)

    這篇文章主要介紹了Go語言循環(huán)遍歷含有中文的字符串的幾種方法,文章通過代碼示例講解的非常詳細,具有一定的參考價值,感興趣的小伙伴跟著小編一起來看看吧
    2023-07-07
  • Golang?中的?條件變量(sync.Cond)詳解

    Golang?中的?條件變量(sync.Cond)詳解

    這篇文章主要介紹了Golang?中的?條件變量(sync.Cond)詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 淺談Golang是如何讀取文件內(nèi)容的(7種)

    淺談Golang是如何讀取文件內(nèi)容的(7種)

    這篇文章主要介紹了淺談Golang是如何讀取文件內(nèi)容的,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • go實現(xiàn)圖片拼接與文字書寫的方法實例

    go實現(xiàn)圖片拼接與文字書寫的方法實例

    這篇文章主要給大家介紹了關(guān)于go實現(xiàn)圖片拼接與文字書寫的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • golang bufio包中Write方法的深入講解

    golang bufio包中Write方法的深入講解

    這篇文章主要給大家介紹了關(guān)于golang bufio包中Write方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • 用go gin server來做文件上傳服務(wù)

    用go gin server來做文件上傳服務(wù)

    今天小編就為大家分享一篇關(guān)于用go gin server來做文件上傳服務(wù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Go語言中序列化與反序列化示例詳解

    Go語言中序列化與反序列化示例詳解

    我們的數(shù)據(jù)對象要在網(wǎng)絡(luò)中傳輸或保存到文件,就需要對其編碼和解碼動作,Go語言當然也支持所有這些編碼格式,下面這篇文章主要給大家介紹了關(guān)于Go語言中序列化與反序列化的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Golang語言中的Prometheus的日志模塊使用案例代碼編寫

    Golang語言中的Prometheus的日志模塊使用案例代碼編寫

    這篇文章主要介紹了Golang語言中的Prometheus的日志模塊使用案例,本文給大家分享源代碼編寫方法,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 破解IDEA(Goland)注冊碼設(shè)置 license server一直有效不過期的過程詳解

    破解IDEA(Goland)注冊碼設(shè)置 license server一直有效不過期的過程詳解

    這篇文章主要介紹了破解IDEA(Goland)注冊碼設(shè)置 license server一直有效不過期,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11

最新評論

澎湖县| 广南县| 达州市| 绥德县| 河南省| 宝清县| 井冈山市| 芒康县| 社旗县| 土默特右旗| 南和县| 平遥县| 海安县| 滕州市| 镇沅| 藁城市| 玛纳斯县| 昌江| 迭部县| 武汉市| 黄大仙区| 宜昌市| 会同县| 余姚市| 建平县| 静安区| 仙桃市| 汪清县| 钟山县| 石嘴山市| 九龙坡区| 高雄市| 永丰县| 新建县| 鄂托克前旗| 福鼎市| 嘉义县| 大田县| 康乐县| 漳浦县| 丽水市|