目錄
- 正文
- 一、安裝 Docker
- 二、使用 Docker 部署 Go 項目
- 三、上傳鏡像到鏡像倉庫
正文
大家都知道Go
編譯后是可執行的二進制文件,一般我們的項目會部署在Linux
中,Docker
也是現在常用的部署方案,伸縮擴容、遷移都更方便。該篇文章教大家使用Docker
來部署go
項目,最后把Docker
鏡像發布啊鏡像倉庫(這里使用阿里云鏡像倉庫),公司內部一般發布到公司私有鏡像倉庫,方便其他服務器拉取鏡像部署等。
一、安裝 Docker
linux
服務器使用curl
下載快速安裝的shell
腳本
curl -fsSL get.docker.com -o get-docker.sh
下載完成后,可以ls
命令查看一下。已經存在的話,使用sh
命令執行這個腳本
sh get-docker.sh
注意如果不是root
用戶,需要使用sudo su
獲取超級管理員權限。
安裝完成后啟動一下Docker Server
systemctl start docker
使用docker version
命令能看到Client
和Server
就啟動成功了。
二、使用 Docker 部署 Go 項目
這里我使用一個自己開發的Gin
項目,首先在項目跟目錄下創建一個Dockerfile
文件
寫入以下內容:
# 指定基礎的go編譯鏡像 FROM golang:alpine as build # 指定go的環境變量 ENV GOPROXY=https://goproxy.cn \ GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 # 指定工作空間目錄,會自動cd到這個目錄 WORKDIR /build # 把項目的依賴配置文件拷貝到容器中,并下載依賴 COPY go.mod . COPY go.sum . RUN go mod download # 把項目的其他所有文件拷貝到容器中 COPY . . # 編譯成可執行二進制文件 RUN go build -o app . # 指定新的運行環境,最終的運行會基于這個壞境,使得最終的鏡像非常小 FROM scratch as deploy # 把編譯環境中打包好的可執行文件和配置文件拷貝到當前鏡像 COPY --from=build /build/app / COPY --from=build /build/conf ./conf CMD ["/app"]
在項目根目錄使用以下命令來構建鏡像
docker build -t gotodo .
構建好后使用docker images
來查看我們打包好的鏡像
最終運行容器:
docker run -itd -p 7000:7000 gotodo
三、上傳鏡像到鏡像倉庫
把我們構建好的鏡像上傳到鏡像倉庫,方便我們跨服務器部署或伸縮容等,這里我使用阿里云個人免費鏡像倉庫演示,公司內部一般搭建私有的鏡像倉庫(與阿里云鏡像倉庫同理)。
首先去阿里云申請并創建下個人免費鏡像倉庫,具體申請方法可百度等,很簡單。
創建時代碼源選擇本地倉庫
創建好后如下:
我們參考3.將鏡像推送到Registry
- 首先用
docker login
在本地登錄 - 再使用
docker tag
對我們剛才的鏡像重新打一個tag
- 使用
docker push
把重新打好tag
的鏡像上傳到倉庫
上傳完成后可以在阿里云上看到版本等
最后其他服務器想拉取這個鏡像也很簡單,直接
docker pull registry.cn-hangzhou.aliyuncs.com/junkaione/gotodo:v1.0.0
運行容器
docker run -itd -p 7000:7000 registry.cn-hangzhou.aliyuncs.com/junkaione/gotodo:v1.0.0
到此,使用 Docker 來部署我們的 Go 項目,及把打包后的鏡像上傳到鏡像倉庫的文章就結束了,更多關于Docker部署Go發布鏡像倉庫的資料請關注其它相關文章!