背景
当前国产化信创经过数年发展,目前已经在各地政府或国企的信息化项目实践中开始落地。
Nacos做为一款优秀的“动态服务发现、配置管理和服务管理平台”在我们的平台中广泛应用,但是Nacos本身只支持MySQL数据库,针对其它数据库的适配需要通过插件机制来实现。Nacos官方并没有提供适配PostgreSQL的ARM64镜像,那么在国产化信创的大趋势下,我们该如何自定义构建自己的镜像。本文主要就是是演示如何自定义制作我们需要的目标镜像。
步骤
Nacos数据库插件
- 首先,我们可以关注nacos-group开源的nacos-plugin工程,默认已经提供了基于Nacos2.2扩展插件接口实现的postgresql插件,当然也包括dm、oracle插件(如果要适配其它数据库,可以参照实现自定义插件)。
- postgresql插件目前提供了两种引入方式,这里我们选择方式二,因为这样可以不用修改nacos源代码。
- 我们使用git clone将nacos-plugin工程克隆到本地(最好是ARM64服务器),然后使用以下命令制作postgresql插件jar包。命令执行完成后在target目录下会生成nacos-postgresql-datasource-plugin-ext-1.0.0-SNAPSHOT.jar。
mvn package -DskipTests=true
- 备注:
①OpenJDK下载地址:https://wiki.openjdk.org/display/jdk8u
②OracleJDK下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
服务器环境准备
- 首先我们需要准备一台ARM64服务器,我这里以银河麒麟V10来举例说明
- 安装docker
# 安装Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 设置Docker自启动并立即运行docker
systemctl enable --now docker
# 验证安装
docker -v
- 安装docker-compose
# 安装docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-aarch64 -o /usr/local/bin/docker-compose
# 添加可执行权限
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose -v
Dockerfile制作
- 在github上下载nacos-docker工程,我们基于官方提供的Dockerfile进行修改来制作目标镜像。这里我将nacos-docker-2.2.3下载到/mnt目录下。
- 将之前已经打包完成的nacos-postgresql-datasource-plugin-ext-1.0.0-SNAPSHOT.jar拷贝到nacos-docker/build目录下。
- 编辑application.properties,因为默认配置文件是基于MySQL配置相关参数的,我们注释掉原有配置,并参照MySQL配置。
- 将原有Dockerfile文件重命名备份,然后基于Dockerfile.Slim复制生成新的Dockerfile。
mv Dockerfile Dockerfile.bak
cp Dockerfile.Slim Dockerfile
- 编辑新的Dockerfile文件,主要是两点:①修改镜像(ARM64);②添加postgresql插件jar至plugins目录。
FROM buildpack-deps:buster-curl as installer
ADD nacos-postgresql-datasource-plugin-ext-1.0.0-SNAPSHOT.jar ${BASE_DIR}/plugins/
为啥是plugins目录?我们就需要在docker-startup.sh里面找答案了:
- 准备就绪,我们开始构建镜像
docker build -t xfishup/nacos-server:2.2.3-postgresql .
验证
- 配置环境变量,在/mnt/nacos-docker-2.2.3/env目录下,新建nacos-standlone-pgsql.env文件,对我们在application.properties中添加的变量值进行配置。
- 配置standalone-pgsql.yaml,方便我们使用docker-compose部署nacos进行验证。在/mnt/nacos-docker-2.2.3/example目录下,新建standalone-pgsql.yaml文件,参照下图编辑内容,注意.env不要弄错了。
- 以standalone方式启动nacos,访问成功,大功告成!
docker-compose -f standalone-pgsql.yaml up
推送镜像
- 将已经构建好的镜像推送到docker-hub。
docker login
docker push xfishup/nacos-server:2.2.3-postgresql
如果需要完整的nacos-docker配置文件和postgresql插件jar,请关注我的微信公众号,回复nacos-docker
即可获取。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦