七叶笔记 » golang编程 » 使用docker部署golang的gin实战项目

使用docker部署golang的gin实战项目

背景

在前几个小节,我们使用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的知识点,有了数据,我们再继续接下来的课程学习

如果大家学的写的不多,希望点赞,关注,您的支持,是我写作最大的动力~ 感谢

相关文章