前面咱们已经演示了很多kratos编写微服务的相关知识点的代码了,最后我们还是需要把项目给运行起来。
在goland里面每次我们都是使用kratos run命令来运行整个服务的,到了服务器上,我们不可能把源码上传上去,再使用kratos run命令运行对吧?所以这里的话,我们希望把项目进行打包再运行。常见的做法主要是把服务打包成docker镜像即可。在我们使用模板创建项目完成之后,会在项目下自动生成一个名词为Dockerfile的文件,如下图:
同时在这个文件里面,模板已经自动填充了打包成docker的内容,如下图:
所以根本不需要我们操心如何编写打包docker镜像的命令,但是这里需要涉及到一点,就是需要修改下信息,有两个地方要涉及到修改,
1)修改server二进制文件
把Dockerfile文件中的./server 修改为./${cmd_main}}
这里的cmd_main是指当前项目cmd文件夹下的文件夹名称,如下图:
这里比如我们的项目是user-center,所以在cmd目录下的文件夹名称是user-center,所以我们就把server修改成user-center,如下图:
2)修改go版本
dockerfile里面的go版本默认比较低,比如我们模板创建的go版本是1.19的,如下图:
我们把这里修改为latest即可,如下图:
接下来就可以进行打吧docker镜像了,这里打包docker镜像的命令如下:
docker build -t user-center:1.0 .
然后静待打包即可
打包完成之后即可看到镜像了:
最后我们可以在服务器上启动这个docker镜像了。但是启动之前我们要了解一个事情:
在go-kratos项目里面,所有的配置文件信息我们几乎都是配置在configs/config.yaml文件中的,在生产上一般我们都是把配置文件进行外置的,尽量避免把配置文件打包到docker镜像里面,所以这里我们需要把config.yaml文件放到服务器的某个指定位置上去,然后在启动docker的时候挂载放这个config.yaml文件的目录即可。
这里启动go-kratos项目的话,启动命令是:
docker run --name user -d -p 8000:8000 -p 9000:9000 -v /mnt/user-center/configs:/data/conf user-center:1.0
备注:
1、可以看到我们把放config.yaml文件的目录挂载进去了。
启动之后,服务器上就有对应的docker实例了,如下图:
最后我们请求测试下:
可以看到成功的运行了。按照这样操作,我们所有编写的go-kratos微服务都可以运行成功的。
还没有评论,来说两句吧...