背景
在前几个小节,我们使用gin搭建了一套完整的关于豆瓣电影管理CRUD的系统,虽然功能比较简单,但是我们之后的十几个小节,我们都会在这个项目上进行扩展,所以我们现在先要进行 docker 部署,docker的最基本的使用,我之前有过文章对docker进行过介绍,但是之前的介绍,我们是用 Docker 部署java应用,现在我们将用docker部署golang项目
我们可以在部署的过程,对比一下与java之间的效果,看一看docker部署golang的应用是多香,docker对golang的应用的亲和性是多么的好
我们这边分2步走,第一步是使用本地的docker进行部署,第二步是使用 阿里云 的 ECS 服务器的docker来部署
编写Dockerfile
工欲善其事,必先利其器,之前说过,docker的一起的开始,就是必须先有镜像,镜像生成的方式总体上分为2种,一种是自己生成镜像,另一种就是直接使用别人的镜像
1.新建Dockerfile文件,在根路径下新建,如下图所示
2.Dockerfile的文件内容最基础的版本如下所示,这个适用很多的基础的golang项目制作docker镜像,但是这个里面没有增加 环境变量 的控制,不过我们是初步使用docker并不会影响我们日常的使用,完整的Dockerfile内容如下
3.使用docker build命令来构建镜像( 注意最后有一个点,表示当前目录 )
然后我们使用docker images命令来看下我们生成的镜像
本地docker部署项目
最后我们访问
阿里云Docker部署
本地部署一个docker应用,还是非常的简单的,只需要几个简单的命令就可以完成了,接下来,我们将使用阿里云的ECS服务器来部署我们的gin应用
想要在阿里云的Docker上部署应用的话,我们就需要将我们本地的镜像传到某个私有仓库,然后我们再使用ECS服务器去拉取镜像,就可以完成部署了
在使用远程docker服务器部署之前,我们需要修改一下swagger的几处配置
修改点一:main.go上的host的注释,我们之前是 localhost :8080,现在我们要修改成服务器的IP地址,如果你的 云服务器 的地址是48.23.145.82的话,这边就先修改成48.23.145.82:8080
修改点二:修改访问doc.json的url,之前我们的配置如下,很显然,这边也不用使用localhost来做这个事情了,也需要修改成对应的IP
修改成如下,注意最后我们要重新运行一下swag init
接下来,我们重新运行docker build的命令(也要注意后面的点)
docker build -t jarvis:v2.0.0 .
上传镜像至阿里云的免费镜像仓库
1.因为我之前开通过,开通的过程我就不详细介绍了,大家可以注册体验一下,我觉得还是比较好用的
2.本地docker登录阿里云Docker registry ,按照阿里云给的操作指南,僵尸操作就可以了,无脑复制粘贴
3.重新给本地镜像打上私有库标签,也是按照阿里云给的操作指南来
4.我们简单地看一下我们的仓库,是否成功上传镜像,如下图所示,可以看到我们刚刚上传的镜像服务
登录我们自己的弹性服务器拉取镜像部署应用
docker run -p 8080:8080 registry.cn-hangzhou.aliyuncs.com/lyncc/jarvis:v1.0.0
然后我们在浏览器中访问,把这里面的ip替换成你们自己的服务器ip就可以了,最后我们可以看到如下页面
小结
到此为止,一个最最简单的使用docker部署gin web项目就初步结束了,后续的课程会更加深入介绍部署过程,不需要到处修改变量,不过我们是刚刚入门,不需要有那么多的知识,以后我们就再继续学习吧,下一个小节,我们将会用excel先导入几万条的豆瓣电影数据到数据库中,中间我们会学习golang的channel的知识点,有了数据,我们再继续接下来的课程学习
如果大家学的写的不多,希望点赞,关注,您的支持,是我写作最大的动力~ 感谢