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

配置Dockerfile

在項目中新建Dockerfile 文件,內容如下
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)境鏡像構建自己的docker
第二行配置go的環(huán)境
WORKDIR 表示項目放入容器中的什么地方,就是工作目錄,WORKDIR指定的工作目錄具有傳遞性,很多個WORKDIR的命令是關系的,比如首次指定工作目錄是 /goweb, 那么下邊下面那一行的COPY命令的 ./app 就是在/goweb下進行的相對路徑
COPY表示把本地的文件復制到容器內EXPOSE表示暴露什么端口,這個好像僅僅是給人看的,沒啥用CMD表示基于鏡像構建容器的時候,執(zhí)行什么命令
2. goland構建項目
編輯構建參數(shù)

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

點擊這里的運行就可以

登錄Linux可以看到我們的docker


總結
到此這篇關于goland把go項目打包進docker鏡像的文章就介紹到這了,更多相關goland go項目打包docker鏡像內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
golang使用sync.singleflight解決熱點緩存穿透問題
在go的sync包中,有一個singleflight包,里面有一個?singleflight.go文件,代碼加注釋,一共200行出頭,通過?singleflight可以很容易實現(xiàn)緩存和去重的效果,避免重復計算,接下來我們就給大家詳細介紹一下sync.singleflight如何解決熱點緩存穿透問題2023-07-07

