goland把go項目打包進(jìn)docker鏡像的全過程記錄
1. goland配置Dockerfile
項目中新建Dockerfile文件

配置Dockerfile

在項目中新建Dockerfile 文件,內(nèi)容如下
FROM golang:alpine
ENV GO111MODULE=on \
CGO_ENABLE=0 \
GOOS=linux \
GOARCH=amd64 \
GOPROXY="https://goproxy.cn,direct"
WORKDIR /goweb
COPY out/* ./app
EXPOSE 8088
CMD ["/goweb/app"]
第一行表示基于golang的環(huán)境鏡像構(gòu)建自己的docker
第二行配置go的環(huán)境
WORKDIR 表示項目放入容器中的什么地方,就是工作目錄,WORKDIR指定的工作目錄具有傳遞性,很多個WORKDIR的命令是關(guān)系的,比如首次指定工作目錄是 /goweb, 那么下邊下面那一行的COPY命令的 ./app 就是在/goweb下進(jìn)行的相對路徑
COPY表示把本地的文件復(fù)制到容器內(nèi)EXPOSE表示暴露什么端口,這個好像僅僅是給人看的,沒啥用CMD表示基于鏡像構(gòu)建容器的時候,執(zhí)行什么命令
2. goland構(gòu)建項目
編輯構(gòu)建參數(shù)

這樣構(gòu)建之后的產(chǎn)物就會在out文件夾里邊,然后Dockerfile去out文件夾COPY產(chǎn)物,復(fù)制到docker容器內(nèi)
3. Dockerfile執(zhí)行

點擊這里的運行就可以

登錄Linux可以看到我們的docker


總結(jié)
到此這篇關(guān)于goland把go項目打包進(jìn)docker鏡像的文章就介紹到這了,更多相關(guān)goland go項目打包docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語言標(biāo)準(zhǔn)庫中math模塊詳細(xì)功能介紹與示例代碼
Go語言的標(biāo)準(zhǔn)庫math提供了一系列基礎(chǔ)數(shù)學(xué)函數(shù)和常量,用于進(jìn)行科學(xué)計算、幾何計算和其他數(shù)學(xué)相關(guān)的操作,這篇文章主要介紹了Go語言標(biāo)準(zhǔn)庫中math模塊詳細(xì)功能介紹與示例代碼,需要的朋友可以參考下2025-03-03
golang使用sync.singleflight解決熱點緩存穿透問題
在go的sync包中,有一個singleflight包,里面有一個?singleflight.go文件,代碼加注釋,一共200行出頭,通過?singleflight可以很容易實現(xiàn)緩存和去重的效果,避免重復(fù)計算,接下來我們就給大家詳細(xì)介紹一下sync.singleflight如何解決熱點緩存穿透問題2023-07-07

