在 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 容器化、部署到服务器等关键步骤。