新起的战棋类游戏项目, 服务器想用Golang + mqant,思前想后考虑使用Docker环境部署。简单记录一下。
Docker的好处就不废话了,考虑使用它主要是因为,它很适合现在我们团队的工作流程,很灵活,并且等游戏上线后初期维护(会有很多改动)会方便一些,更重要的是,很适合以后项目的扩展,集群想怎么做就怎么做,服务器想怎么开就怎么开。
先安装Docker, 哪有哪下载去。
https://www.docker.com
顺便下载一个可视化的容器管理工具 Kitematic (目前还是Beta版), 开发环境用它来管理容器很方便。
Mqant 在 GitHub上有一个服务器的示例 mqantserver, 正好可以用来检验Docker环境。本身这个工程也提供了Docker部署的配置, 相当感人。
*** 注意 ***
一定先安装并配置好 Go语言的开发环境和环境变量什么的,再去搞Docker,不然之后出问题会很麻烦。
在配什么不用废话了,一搜一大片, 记着要即时生效,别白费劲。
open ~/.bash_profile
source ~/.bash_profile
之后的Docker工程目录也要配置在 GOPATH 里。
那就想看看 mqantserver 是怎么用Docker部署的
找到 Docker 的配置文件 mqant-docker 下载下来,随便找个地方放。简单看看,里面都是Docker的工程文件,
由于Docker的运作方式是一个发布工程一个目录,多个工程可以配置多个目录到 GOPATH 中,所以不要把 mqant-docker 放到goroot等目录下。
修改 mqant-docker 中的一些配置, 都是改工作目录。这里我把项目名称命名为SteampunkServer, 所以游戏服务器工程的更目录都是SteampunkServer。
mqant-docker/Dockerfile
VOLUME ["/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/"]
ENV GOPATH $GOPATH:/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer
mqant-docker/start.sh
/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/bin/server --conf /Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/bin/conf/server.json --log /Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/bin/logs
mqantserver(当然已经变成Steampunk了,下面要是再说这两个都是一个目录)中也是要改一下目录, 同理啊, 用得上的都改。
/Steampunk/Server/SteampunkServer/bin/conf/server.json
"WebRoot":"/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/bin/console",
...
...
"StaticPath":"/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer/bin"
build mqant-docker
sudo docker build -t="bjfumac/mqant" .
用Docker 为Steampunk工程创建一个容器,创建好可以在Kitematic中看得见。
sudo docker run --name SteampunkServer -p 8080:8080 -p 3653:3653 -p 7700:7700 -p 7701:7701 -v /Users/sueshing/Workspace/Steampunk/Server/SteampunkServer:/Users/sueshing/Workspace/Steampunk/Server/SteampunkServer -idt bjfumac/mqant
启动Steampunk工程的服务
sudo docker exec SteampunkServer sh start.sh
关闭Steampunk工程的服务
sudo docker stop SteampunkServer
【喜欢的点个赞,拿去用的打个赏,拿钱去买猫粮,楼下的流浪猫在等我。】
--- To Be Continued ---