安装
Homebrew 的 Cask 已经支持 Docker for Mac, mac用户狂喜
brew install --cask --appdir=/Applications docker
其他入门用法可参考 Docker Hello World- 菜鸟教程 或网上自行搜索博客学习。本文主要记录我运行go-zero-mall用到的一些注意点。当然,gonivinck项目书写的dockerfile格式也可以为我们平时日常开发做参考。
打包容器
在学习这个项目 go-zero-mall 时,需要打包一个容器, 好在它的docker file都写好了 https://github.com/nivin-studio/gonivinck.
文件修改
不过需要修改一下几处地方:
.env环境的代码路径改一下
由于我是mac用户,这里也需要修改下
Golang 文件夹的dockerfile也要改一下,不然依赖下不下来. 改为 goctl@v1.5.0 版本
打包镜像
docker-compose up -d
运行代码
切换到go-zero-mall代码路径下,进行golang容器环境.
docker exec -it gonivinck-golang-1 bash
容器名称可以在docker desktop查看,也可以通过执行命令查看,可能不通版本的机子会不太一样
安装相关依赖(注意是在进入容器环境的终端会话下,也就是你刚刚执行docker exec -it gonivinck-golang-1 bash的terminal)
./nivin install
然后启动四个服务。
./nivin start rpc order
./nivin start api order
./nivin start rpc pay
./nivin start api pay
./nivin start rpc product
./nivin start api product
./nivin start rpc user
./nivin start api user
新建数据表
为了运行正常,我们还得在mysql容器中创建一个mall 数据库和4张数据表。先让终端进入mysql容器
docker exec -it gonivinck-mysql-1 bash
登录一下
mysql -u root -p
输入密码,密码在构建容器时的.env文件设置了
登录后新建数据库: create dababase mall,然后运行services四个服务下的model文件夹下的sql文件
api验证
使用postman,导入go-zero-mall仓库下的 gomall.postman_collection.json 文件,即可调用相关接口