一.打包二进制文件
go env
查看自己电脑的go配置
- 修改配置(打包完后可改回,否则本地无法运行了)
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
- 打包
go build main.go
二.准备发布
- 将二进制文件放入服务器中
- 下载镜像
docker pull golang:alpine3.13
(这个包比官方的go包小巧很多) - 修改包权限
chmod 777 mainLinux
(偶尔会遇到没权限的情况) - 在该目录中编写Dockerfile文件
#源镜像
FROM golang:alpine3.13
#将二进制文件拷贝进容器的GOPATH目录中
ADD mainLinux /go/src/mainLinux
#为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64 \
GOPROXY="https://goproxy.cn,direct"
#暴露端口
EXPOSE 3000
#工作目录
WORKDIR /go/src
#最终运行docker的命令
CMD ["./mainLinux"]
三.发布
- 运行Dockerfile生产镜像
docker build -t mygo -f Dockerfile .
(注意最后的‘ .’不能少) - 运行镜像生成容器
docker run -p 3000:3000 --name chargeMsGo mygo
- 发布成功