定制elasticsearch镜像
项目是部署在支付宝小程序云上面的,只有云托管的功能,只能通过docker部署服务。还是不如自己使用云服务器来得方便,不能直接把es的插件目录和数据目录挂载出来在外部操作。所以要添加插件只能提前定制自己的完整的包含插件的镜像。我之前使用docker也都只是简单的拉取运行,java项目也都是一直使用最开始写的那个dockerfile缝缝补补在使用。所以我对dockerfile其实并不是很了解。这次定制镜像算是又系统的学了下dockerfile。但是在制作过程中还是遇到了很多的问题,特别是用户权限方面的问题。es的启动必须使用elasticsearch这个用户。 最开始使用云托管部署es官方的镜像,如果挂载数据卷的话就一直部署不上,也是因为这个用户权限的问题。就找了支付宝官方人员的援助,当时可能是快21:00才去找的人工客服(官网是写的工作时间是到21:00)。经过客服的一些指导还是没能够解决。最后大概在23:00的时候,就添加了官方人员进项目里面,协助部署。官方人员部署的历程也挺抽象的hhhh,当时添加之后,他大概折腾了半个小时,还是都是部署失败。然后就没动静了,等到凌晨2点突然又开始部署了,当然他折腾一个小时的样子还是没成功。就给我发消息说是什么云硬盘的权限问题。

然后第二天官方人员又折腾了一上午加一下午,终于在第二天下午17点的样子给出了解决方案哈哈哈。不得不说确实敬业,凌晨2点都在折腾。快下班才去找人工,我都觉得自己有点🐕了😊,但是当时确实是没注意到他们下班时间。
经过官方人员20+上线测试最终排查出来问题还是出在了用户组上。

在dockerfile中添加两条指令重新构建镜像。
| |
解决了上面的问题以后。就可以开始定制镜像了

| |
我的目的就是将我需要的插件打包进镜像里面,当然这些插件都是经过我自己定制化过的。ik分词器实现了连接数据库热更新。 但是这个镜像还是很奇怪,只能在支付宝的云托管里面才能正常启动。我自己服务器上不能正常启动,还是存在权限相关问题。即便是我手动指定了用户组还是不能正常启动。这个问题有空再来解决。先把项目搞完再说!
