Nacos2.2.0适配瀚高数据库,打镜像部署

news/2024/9/20 12:37:04

一、Nacos2.2.0适配瀚高数据库

Nacos2.2.0适配瀚高数据库部分参考地址:https://blog.csdn.net/weixin_39676699/article/details/130642890

application.properties配置文件中数据库部分配置如下:

spring.sql.init.platform=highgo
db.num=1
db.url.0=jdbc:highgo://192.168.1.1:5866/highgo?currentSchema=nacos_new&useUnicode=true&characterEncoding=utf8&stringtype=unspecified&serverTimezone=UTC
db.user.0=sysdba
db.password.0=123456
db.pool.config.driverClassName=com.highgo.jdbc.Driver

二、编译打包源码,制作镜像,docker启动

1、编译打包源码

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

在cmd或idea中的maven执行命令,不要在idea中的终端执行。

我在打包过程中出现下图错误,但是打包完成了。

打包后的jar在/distribution/target目录下,如下图

 2、制作镜像

 参考地址:https://blog.csdn.net/qq_36805343/article/details/129369976

下载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

 将下载的nacos-docker-2.2.0.tar.gz解压,文件结构如下:

nacos-docker 文件结构
|----build:nacos 镜像制作的源码
|----bin:shell脚本
|----conf:配置文件
|----env: docker compose 环境变量文件
|----example: docker-compose编排例子

博主未进行 postgresql -->docker-compose模式的env和example扩展

开始制作naocs镜像,步骤如下(均在build目录下操作):

1.将换了数据库的nacos源码编译打包后的.tar.gz结尾的包,放到nacos-docker-2.2.0的build目录下。

2.修改conf下的application.properties

 3.修改Dockerfile文件

 我修改后的Dockerfile文件如下:

FROM centos:7.9.2009
MAINTAINER pader "huangmnlove@163.com"# set environment
ENV MODE="standalone" \PREFER_HOST_MODE="ip"\BASE_DIR="/home/nacos" \CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \CLUSTER_CONF="/home/nacos/conf/cluster.conf" \FUNCTION_MODE="all" \JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" \NACOS_USER="nacos" \JAVA="/usr/lib/jvm/java-1.8.0-openjdk/bin/java" \JVM_XMS="1g" \JVM_XMX="1g" \JVM_XMN="512m" \JVM_MS="128m" \JVM_MMS="320m" \NACOS_DEBUG="n" \TOMCAT_ACCESSLOG_ENABLED="false" \TIME_ZONE="Asia/Shanghai"ARG NACOS_VERSION=2.2.0
ARG HOT_FIX_FLAG=""WORKDIR $BASE_DIRRUN set -x \&& yum update -y \&& yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget iputils nc vim libcurl
#RUN wget  https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz -P /home
COPY nacos-server-${NACOS_VERSION}.tar.gz /home
RUN tar -xzvf /home/nacos-server-${NACOS_VERSION}.tar.gz -C /home \&& rm -rf /home/nacos-server-${NACOS_VERSION}.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql
RUN yum autoremove -y wget \&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone \&& yum clean all
ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties# set startup log dir
RUN mkdir -p logs \&& cd logs \&& touch start.out \&& ln -sf /dev/stdout start.out \&& ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.shEXPOSE 8848
ENTRYPOINT ["bin/docker-startup.sh"]

4.打镜像

在Dockerfile所在文件目录,执行打镜像命令。

docker build -t nacos:2.2.0 . 

我是在windows环境下打的镜像,若在linux环境下打镜像,需要将整个build目录上传至linux服务器。

注意:下载的所有文件格式如果是在linux系统执行的话,会有格式问题,需要修改Dockerfile和bin目录下sh文件的编码格式。

正常编写的.sh文件拷贝到docker容器,启动时报错no such file or directory,大概率是格式问题。

如果在linux环境下,我们可以用vi命令打开文件,然后在普通模式下输入:set ff

#vi Dockerfile

在命令窗口下输入:set ff,然后按回车键,可查看当前文件格式

 

如果显示fileformat=dos,我们可以使用命令:set ff=unix修改文件格式 ,修改改完可再用:set ff查看是否已修改为unix格式。 

一定要注意,不只是DockerFile文件,你挂载到docker容器内的所有文件都可能有这个错误。

3、docker启动nacos

docker run --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849  -d nacos:2.2.0

访问:http://ip:8848/nacos

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

引用开源报表可视化实现数字化转型

如果想了解它带来的好处,可以随时来了解低代码技术平台、开源报表可视化的相关优势特点吧。众所周知,现在正是数字化转型的高速发展期。想要实现高效率的办公,就需要引进更为先进的软件平台,实现提质增效的办公效果。低代码技术平台是助力企业提升市场竞争力、扩大市场份额…

智慧工厂之眼:大屏可视化管理的无限可能

智慧工厂可视化大屏,不仅仅是一块显示屏,更是工厂运行的“大脑”。通过这块屏幕,我们可以实时掌握工厂的每一个角落、每一道工序的运行情况。从原材料的入库,到生产线的作业,再到成品的出库,每一个环节都清晰可见,一目了然。在数字化浪潮席卷全球的今天,智慧工厂已不再…

MapReduce流程

MapReduce流程 将文件上传到HDFS中,默认每128M切分为一个block块, MapReduce会对数据进行逻辑上的切片(split),并不是实际上的切分,默认与block块的大小一致为128M, 根据split切分产生map任务,切片越多产生的map任务就越多,map默认每次读取一行数据,map阶段产生的数据…

05限流和序列化

限流和序列化 1.限流 限流,限制用户访问频率,一般的限流用户信息都存于缓存之中,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。对于匿名用户,使用用户IP作为唯一标识。 对于登录用户,使用用户ID或名称作为唯一标识。1.1限流组件使用步骤…

04认证和权限

认证和权限 一、认证 在开发后端的API时,不同的功能会有不同的限制,例如:无需认证,就可以访问并获取数据。 需认证,用户需先登录,后续发送请求需携带登录时发放的凭证在drf中也给我们提供了 认证组件 ,帮助我们快速实现认证相关的功能 【1】认证组件使用步骤 (1)创建认…

AI agent的几种实现思路

February 24, 2024 提示工程学习笔记(二)在 上一篇笔记 中,我们学习了很多提示工程相关的技术,比如思维链(CoT)和最小到最多提示(Least-to-Most Prompting)等,显著改善了大模型的推理能力。尽管如此,我们常常还是会看到这样的现象:大模型可以准确地生成解决问题的逻…

振弦采集仪在岩土工程监测中的重要性及应用案例分享

振弦采集仪在岩土工程监测中的重要性及应用案例分享 岩土工程监测是为了确保土地和建筑物的稳定性以及确保施工安全而进行的一项重要工作。河北稳控科技振弦采集仪是岩土工程监测中一种常用的仪器设备,通过测量土体振动频率来评估土体的稳定性和强度变化,具有重要的监测功能。…

如何设计实用的ITSM自助服务台

在现代IT服务管理(ITSM)领域中,自助服务台已成为IT运维环境的核心组件。它作为企业内部信息中心与其他部门用户之间的桥梁,一个以用户为中心的平台,更注重用户的自主性和自助能力,使用户能够直接访问所需的IT信息、工具和服务,解决他们在日常工作中遇到的各种IT问题和需…