亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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ù)?。。?/p>

運行結(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低于當(dāng)前項目的Go版本(當(dāng)前項目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語言LeetCode題解1030距離順序排列矩陣單元格

    go語言LeetCode題解1030距離順序排列矩陣單元格

    這篇文章主要為大家介紹了go語言LeetCode題解1030距離順序排列矩陣單元格,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 淺談Go語言中的次方用法

    淺談Go語言中的次方用法

    這篇文章主要介紹了淺談Go語言中的次方用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 詳解golang中接口使用的最佳時機

    詳解golang中接口使用的最佳時機

    接口在系統(tǒng)設(shè)計中,以及代碼重構(gòu)優(yōu)化中,是一個不可或缺的工具,能夠幫助我們寫出可擴展,可維護性更強的程序,本文主要為大家介紹一下golang中接口使用的最佳時機,有興趣的可以了解下
    2023-09-09
  • golang 實現(xiàn)菜單樹的生成方式

    golang 實現(xiàn)菜單樹的生成方式

    這篇文章主要介紹了golang 實現(xiàn)菜單樹的生成方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Go函數(shù)的使用示例教程

    Go函數(shù)的使用示例教程

    這篇文章主要介紹了Go函數(shù)的使用示例,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • go slice 數(shù)組和切片使用區(qū)別示例解析

    go slice 數(shù)組和切片使用區(qū)別示例解析

    這篇文章主要為大家介紹了go slice 數(shù)組和切片使用區(qū)別示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 解決golang.org不能訪問的問題(推薦)

    解決golang.org不能訪問的問題(推薦)

    這篇文章主要介紹了解決golang.org不能訪問的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • 詳解Golang的GC和內(nèi)存逃逸

    詳解Golang的GC和內(nèi)存逃逸

    這篇文章主要給大家詳細介紹了Golang的GC和內(nèi)存逃逸,文章中有詳細的代碼示例,對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-07-07
  • Go語言學(xué)習(xí)之goroutine詳解

    Go語言學(xué)習(xí)之goroutine詳解

    Goroutine是建立在線程之上的輕量級的抽象。它允許我們以非常低的代價在同一個地址空間中并行地執(zhí)行多個函數(shù)或者方法,這篇文章主要介紹了Go語言學(xué)習(xí)之goroutine的相關(guān)知識,需要的朋友可以參考下
    2020-02-02
  • go語言操作之nacos配置中心

    go語言操作之nacos配置中心

    這篇文章主要介紹了go語言操作之nacos配置中心,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論