部署
ECS服务器
克隆项目代码到服务器上
将代码编译成二进制可执行文件
export GDD_ENV=prod && go build -o api cmd/main.go
1
- 启动可执行文件,推荐用screen命令或pm2,这里以screen命令为例,先创建一个窗口
screen -S app
,窗口名字叫app
,启动程序./app
。ctrl + a + d
可以退出screen,screen -r app
可以打开刚才创建的app窗口,查看命令行终端输出的日志。
提示
如果是Centos服务器,screen的安装命令是yum install -y screen
。
想看当前开启的窗口列表,可用screen -ls
命令
➜ ~ screen -ls
There is a screen on:
16048.app (Detached)
1 Socket in /var/run/screen/S-root.
1
2
3
4
2
3
4
如果想删掉app窗口,可以先执行命令screen -r app
登录进去,再输入exit
回车,就退出并且删除app窗口了。
➜ ~ screen -r app
[screen is terminating]
➜ ~
➜ ~ screen -ls
No Sockets found in /var/run/screen/S-root.
1
2
3
4
5
2
3
4
5
一般程序员日常开发掌握这几个命令已经做够了。
Docker
你可以直接使用go-doudou svc init
命令生成的Dockerfile
,也可以根据实际项目需求修改。
先下载依赖到vendor
文件夹
go mod vendor
1
再打包镜像
docker build -t myservice .
1
最后执行docker run
命令
docker run -it -d -p 6060:6060 myservice
1
需要把myservice
改成你自己的镜像名称。
Kubernetes
go-doudou
开箱支持k8s部署。
- 执行
go-doudou svc push
命令可以打包镜像并推送到远程镜像仓库,最后生成两份k8s部署文件,一个用于部署无状态服务,一个用于部署有状态服务。
go-doudou svc push --pre godoudou_ -r wubin1989
1
可以通过--pre
参数设置镜像名称前缀。需要将wubin1989
改成你自己的远程镜像仓库地址。
每次执行此命令都会自动更新镜像的版本号,命名规则为v
+ yyyyMMddHHmmss
,同时自动更新k8s部署文件里的镜像名称。
- 执行
go-doudou svc deploy
命令。此命令默认采用_deployment.yaml
后缀的文件部署无状态服务。你可以通过-k
参数设置其他k8s部署文件路径。