Nacos 使用Postgresql数据库制作镜像
迪丽瓦拉
2024-05-29 19:53:10
0

构建前提

在 Nacos 2.2.0支持postgresql数据库基础上进行构建

github地址:个人仓库

编译打包源码

mvn -Prelease-nacos clean package install -Dmaven.test.skip=true

若想跳过pmd和checkstyle检查请使用

mvn -Prelease-nacos clean package install -Dmaven.test.skip=true -Dpmd.skip=true -Dcheckstyle.skip=true

编译后压缩包目录 nacos-postgresql/distribution/target

下载Nacos-Docker

官方Nacos Docker 快速开始:https://nacos.io/zh-cn/docs/quick-start-docker.html

Nacos Docker Github官方说明:https://github.com/nacos-group/nacos-docker/blob/master/README_ZH.md

下载对应自己的nacos版本,博主为 nacos version 2.2.0

下载链接 version 2.2.0:https://github.com/nacos-group/nacos-docker/archive/refs/tags/v2.2.0.tar.gz

nacos-docker 文件结构
|----build:nacos 镜像制作的源码|----bin:shell脚本|----conf:配置文件
|----env: docker compose 环境变量文件
|----example: docker-compose编排例子博主未进行 postgresql -->docker-compose模式的env和example扩展

解压tar.gz

[root@VM-0-9-centos ~]# tar -zxvf v2.2.0.tar.gz

修改conf配置

路径 nacos-docker-2.2.0/build/conf

#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=postgresql
db.num=1
db.url.0=jdbc:postgresql://127.0.0.1:5432/nacos_config?reWriteBatchedInserts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false
db.user.0=xxx
db.password.0=xxx

或者使用下面参数配置

注释原先的mysql,若是mysql数据库则不用修改conf文件

#db.num=${MYSQL_DATABASE_NUM:1}
#db.url.0=jdbc:mysql://${MYSQL_SERVICE_HOST}:${MYSQL_SERVICE_PORT:3306}/${MYSQL_SERVICE_DB_NAME}?${MYSQL_SERVICE_DB_PARAM:characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false}
#db.user.0=${MYSQL_SERVICE_USER}
#db.password.0=${MYSQL_SERVICE_PASSWORD}
db.num=${POSTGRESQL_DATABASE_NUM:1}
db.url.0=jdbc:postgresql://${POSTGRESQL_SERVICE_HOST}:${POSTGRESQL_SERVICE_PORT:5432}/${POSTGRESQL_SERVICE_DB_NAME}?${POSTGRESQL_SERVICE_DB_PARAM:reWriteBatchedInserts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false}
db.user.0=${POSTGRESQL_SERVICE_USER}
db.password.0=${POSTGRESQL_SERVICE_PASSWORD}

请注意这里扩展了参数

POSTGRESQL_SERVICE_HOST                数据库 连接地址    
POSTGRESQL_SERVICE_PORT                数据库端口    默认 : 3306
POSTGRESQL_SERVICE_DB_NAME             数据库库名    
POSTGRESQL_SERVICE_USER                数据库用户名    
POSTGRESQL_SERVICE_PASSWORD            数据库用户密码    
POSTGRESQL_SERVICE_DB_PARAM            数据库连接参数    default : reWriteBatchedInserts=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false
POSTGRESQL_DATABASE_NUM                数据库编号    默认 :1

编辑Dockerfile文件

将压缩包放置nacos-docker-2.2.0/build目录下

cp /nacos-postgresql/distribution/target/nacos-server-2.2.0.tar.gz /nacos-docker-2.2.0/build/

因为是自己编译的源代码所以不需要去github上下载代码了

#RUN wget  https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz -P /homeCOPY nacos-server-${NACOS_VERSION}.tar.gz /home

构建镜像

切换到nacos-docker-2.2.0/build目录

docker build -t nacos:2.2.0 .

因为云服务器未安装postgresql数据库 就未启动nacos镜像

达梦数据库的集成请参考这篇文章:Nacos使用达梦数据库,并制作docker镜像

相关内容