Go项目打包创建Docker镜像并部署

作者:有好多问题2024.01.18 09:41浏览量:16

简介:本文将介绍如何将Go项目打包并创建Docker镜像,然后部署到服务器上。我们将遵循以下步骤:打包二进制文件、准备发布、建立私有仓库、推送镜像到私有仓库和服务器运行镜像。

首先,你需要打包你的Go项目。在你的终端中,执行以下命令:

  1. go build main.go

这将生成一个可执行文件。接下来,你需要设置环境变量以准备发布。执行以下命令:

  1. set GOOS=linux
  2. set GOARCH=amd64
  3. set CGO_ENABLED=0

然后,你可以将可执行文件放入服务器中。在服务器上,你可以创建一个私有仓库来存储你的镜像。这个仓库可以在服务器上运行,比如使用Docker自带的registry。你可以通过以下命令拉取一个私有仓库的镜像:

  1. docker pull docker.io/registry

然后,你可以在服务器上运行这个私有仓库的镜像:

  1. docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry docker.io/registry:latest

现在,你可以在本地创建一个Dockerfile来打包你的Go项目。以下是一个示例:

  1. FROM golang:alpine3.13
  2. ADD mainLinux /go/src/mainLinux
  3. ENV GO111MODULE=on
  4. CGO_ENABLED=0
  5. GOOS=linux
  6. GOARCH=amd64

然后,你可以使用以下命令构建你的镜像:

  1. docker build -t my-golang-app .

这将构建一个名为my-golang-app的镜像。然后,你可以将这个镜像推送到你在服务器上建立的私有仓库:

  1. docker tag my-golang-app <your-private-registry-address>/my-golang-app:latest
  2. docker push <your-private-registry-address>/my-golang-app:latest

现在,你可以在服务器上运行你的镜像了:

  1. docker pull <your-private-registry-address>/my-golang-app:latest
  2. docker run -d -p 8080:8080 <your-private-registry-address>/my-golang-app:latest

这将运行你的Go应用程序在服务器的8080端口上。注意替换为你的私有仓库地址。