麒麟V10服务器构建nacos达梦数据库的docker镜像

1.nacos适配达梦数据库

参考文章:nacos2.2.3 适配达梦详细教程_哈哈哈哈哈开船的博客-CSDN博客

2.制作docker镜像

2.1 下载nacos docker官方源码

git clone https://github.com/nacos-group/nacos-docker.git

2.2 拷贝适配过达梦数据库的nacos-server-2.2.3.tar.gz到build目录下

[root@localhost build]# ll
总用量 146328
drwxr-xr-x 2 root root        31 10月 25 16:48 bin
drwxr-xr-x 2 root root        36 10月 25 16:46 conf
-rw-r--r-- 1 root root      1309 10月 25 14:59 Dockerfile
-rw-r--r-- 1 root root      1507 10月 25 14:59 Dockerfile.original
-rw-r--r-- 1 root root      1448 10月 25 14:59 Dockerfile.Slim
-rw-r--r-- 1 root root 149825474 10月 25 14:59 nacos-server-2.2.3.tar.gz

2.3 修改dockerfile文件

使用openjdk:8作为基础镜像,修改后的文件如下

FROM openjdk:8

# set environment
ENV MODE="cluster" \
    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/local/openjdk-8/bin/java" \
    NACOS_USER="nacos" \
    JAVA="/usr/local/openjdk-8/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.3
ARG HOT_FIX_FLAG=""

WORKDIR $BASE_DIR


COPY nacos-server-2.2.3.tar.gz /home

RUN set -x \
    && tar -xzvf /home/nacos-server-2.2.3.tar.gz -C /home \
    && rm -rf /home/nacos-server-2.2.3.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql \
    && ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone




ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties


# set startup log dir
RUN mkdir -p logs \
        && touch logs/start.out \
        && ln -sf /dev/stdout start.out \
        && ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh

EXPOSE 8848
ENTRYPOINT ["bin/docker-startup.sh"]

2.4 修改conf/application.properties文件

修改后的文件如下

# spring
server.servlet.contextPath=${SERVER_SERVLET_CONTEXTPATH:/nacos}
server.contextPath=/nacos
server.port=${NACOS_APPLICATION_PORT:8848}
server.tomcat.accesslog.max-days=30
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i %{Request-Source}i
server.tomcat.accesslog.enabled=${TOMCAT_ACCESSLOG_ENABLED:false}
server.error.include-message=ALWAYS
# default current work dir
server.tomcat.basedir=file:.
#*************** Config Module Related Configurations ***************#
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
#spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:}
spring.sql.init.platform=${SPRING_DATASOURCE_PLATFORM:dm}
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
db.jdbcDriverName=${DM_DRIVER:dm.jdbc.driver.DmDriver}
db.num=${DM_NUM:1}
db.url.0=jdbc:dm://${DM_URL:}
db.user.0=${DM_USER:}
db.password.0=${DM_PASSWORD:}
### The auth system to use, currently only 'nacos' and 'ldap' is supported:
nacos.core.auth.system.type=${NACOS_AUTH_SYSTEM_TYPE:nacos}
### worked when nacos.core.auth.system.type=nacos
### The token expiration in seconds:
nacos.core.auth.plugin.nacos.token.expire.seconds=${NACOS_AUTH_TOKEN_EXPIRE_SECONDS:18000}
### The default token:
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:}
### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
nacos.core.auth.caching.enabled=${NACOS_AUTH_CACHE_ENABLE:false}
nacos.core.auth.enable.userAgentAuthWhite=${NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE:false}
nacos.core.auth.server.identity.key=${NACOS_AUTH_IDENTITY_KEY:example}
nacos.core.auth.server.identity.value=${NACOS_AUTH_IDENTITY_VALUE:example}
nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey01234567890123456789012345345678999987654901234567890123456789}
## spring security config
### turn off security
nacos.security.ignore.urls=${NACOS_SECURITY_IGNORE_URLS:/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**}
# metrics for elastic search
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
nacos.naming.distro.taskDispatchThreadCount=10
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true

2.5 构建nacos-dm镜像

[root@localhost build]# docker build -t nacos-dm:2.2.3 .

3.启动nacos-dm

3.1 docker方式启动

[root@localhost build]# docker run -itd -p8848:8848 --name nacos-dm -e MODE="standalone" -e DM_URL=127.0.0.1:5236 -e DM_USER=xxx -e DM_PASSWORD=xxx nacos-dm:2.2.3

3.2 docker-compose启动

cat docker-compose.yaml

version: "3.8"
services:
  nacos:
    image: nacos-dm:2.2.3
    container_name: nacos-dm
    env_file:
      - ./data/config/nacos-standlone-dm.env
    volumes:
      - ./data/logs/:/home/nacos/logs
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9555:9555"
    restart: always
networks:
  dmNet:
    external: true

cat ./data/config/nacos-standlone-dm.env

PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=dm
DM_DRIVER=dm.jdbc.driver.DmDriver
DM_URL=127.0.0.1:5236
DM_USER=xxx
DM_PASSWORD=xxx

docker-compose启动

[root@nacos1 nacos]# docker-compose up -d
[root@nacos1 nacos]# docker ps -a
CONTAINER ID   IMAGE                                COMMAND                   CREATED          STATUS                     PORTS                                                                                                                             NAMES
3bbe66b4f5d3   nacos-dm:2.2.3                       "bin/docker-startup.…"   58 minutes ago   Up 57 minutes              0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9555->9555/tcp, :::9555->9555/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp   nacos-dm

访问控制台:http://xx.xx.xx.xx:8848/nacos/#/

用户名密码均为nacos

麒麟V10服务器构建nacos达梦数据库的docker镜像_第1张图片

你可能感兴趣的:(docker,容器,运维,数据库,服务器)