在 CentOS 上打包和發布 Golang 應用程序的步驟如下:
安裝 Golang:
首先,下載并安裝 Golang。例如,安裝 Go 1.18 版本:
wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz
tar -xvf go1.18.linux-amd64.tar.gz -C /usr/local/
然后,將 /usr/local/go/bin
添加到系統的 PATH
環境變量中:
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc
go version # 驗證安裝
編譯應用程序:
在項目目錄下,設置目標操作系統和架構,然后進行編譯:
GOOS=linux GOARCH=amd64 go build -o "packageName"
這將生成一個名為 packageName
的二進制文件,該文件可以在 Linux 系統上運行。
編寫 Dockerfile:
創建一個 Dockerfile
文件,以輕量級的基礎鏡像(如 Alpine Linux)來構建應用程序的 Docker 鏡像。以下是一個示例:
# 使用官方 Golang 鏡像作為構建基礎鏡像
FROM golang:1.20 AS builder
# 設置工作目錄
WORKDIR /app
# 復制 go.mod 和 go.sum 文件
COPY go.mod go.sum ./
# 下載依賴
RUN go mod download
# 復制源代碼
COPY . .
# 編譯應用
RUN GOOS=linux GOARCH=amd64 go build -o myapp .
# 使用輕量級的 Alpine 鏡像作為運行時鏡像
FROM alpine:latest
# 設置工作目錄
WORKDIR /root/
# 復制編譯好的二進制文件
COPY --from=builder /app/myapp .
# 暴露應用運行的端口
EXPOSE 8080
# 運行應用
CMD ["./myapp"]
構建 Docker 鏡像:
在包含 Dockerfile
的目錄中,運行以下命令來構建 Docker 鏡像:
docker build -t my-golang-app .
運行 Docker 容器:
構建完成后,可以使用以下命令運行 Docker 容器:
docker run -p 8080:8080 my-golang-app
上傳并運行應用程序:
將生成的 Docker 鏡像上傳到服務器(可以使用 docker save
和 docker load
命令,或者直接推送到 Docker Hub 或其他容器注冊表)。然后,在服務器上拉取并運行鏡像:
docker pull my-golang-app
docker run -d -p 8080:8080 my-golang-app
以上步驟涵蓋了在 CentOS 上打包和發布 Golang 應用程序的基本流程,包括環境搭建、應用程序打包、Docker 容器化、部署到服務器等關鍵步驟。