简介:本文将介绍如何将Go项目打包并创建Docker镜像,然后部署到服务器上。我们将遵循以下步骤:打包二进制文件、准备发布、建立私有仓库、推送镜像到私有仓库和服务器运行镜像。
首先,你需要打包你的Go项目。在你的终端中,执行以下命令:
go build main.go
这将生成一个可执行文件。接下来,你需要设置环境变量以准备发布。执行以下命令:
set GOOS=linuxset GOARCH=amd64set CGO_ENABLED=0
然后,你可以将可执行文件放入服务器中。在服务器上,你可以创建一个私有仓库来存储你的镜像。这个仓库可以在服务器上运行,比如使用Docker自带的registry。你可以通过以下命令拉取一个私有仓库的镜像:
docker pull docker.io/registry
然后,你可以在服务器上运行这个私有仓库的镜像:
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry docker.io/registry:latest
现在,你可以在本地创建一个Dockerfile来打包你的Go项目。以下是一个示例:
FROM golang:alpine3.13ADD mainLinux /go/src/mainLinuxENV GO111MODULE=onCGO_ENABLED=0GOOS=linuxGOARCH=amd64
然后,你可以使用以下命令构建你的镜像:
docker build -t my-golang-app .
这将构建一个名为my-golang-app的镜像。然后,你可以将这个镜像推送到你在服务器上建立的私有仓库:
docker tag my-golang-app <your-private-registry-address>/my-golang-app:latestdocker push <your-private-registry-address>/my-golang-app:latest
现在,你可以在服务器上运行你的镜像了:
docker pull <your-private-registry-address>/my-golang-app:latestdocker run -d -p 8080:8080 <your-private-registry-address>/my-golang-app:latest
这将运行你的Go应用程序在服务器的8080端口上。注意替换