docker+golang部署go服务器到腾讯云服务器上

本人的项目是在Windows上写的,如果要把代码部署到云服务器上,需要对项目进行交叉编译,生成二进制文件,然后再通过xftp上传到云服务器,然后通过golang容器将程序跑起来。

编译代码:

命令行进入main函数所在的go文件的路径下

依次执行下面命令(每执行一条就回车一下)

SET CGO_ENABLED=0 
SET GOOS=linux
SET GOARCH=amd64 
go build (这样生成的二进制文件名与main函数所在的文件名一样,例如上图中的main)
也可以指定生成的二进制文件名:go build -o server main.go (这样就会生成一个名为server的二进制文件)
上传编译后的二进制文件
在linux的命令行下对刚才上传的二进制文件提升权限
chmod 777 main
在二进制文件的同级目录下编写Dockerfile,内容如下
FROM golang
LABEL Method xxx
WORKDIR /root
ADD ./main ./main
EXPOSE 8848	
ENTRYPOINT  ["./main"]

上面EXPOSE的端口要与你go服务器中监听的端口一致

保存退出后执行命令生成镜像
docker build -t go_web .

生成名为go_web的镜像,注意上面的命令中最后的一个符号是英文的句号,不要漏了

通过生成的go_web镜像启动一个容器将服务器跑起来
docker run --name go_server -d -p 8848:8848 go_web