参考文章:nacos2.2.3 适配达梦详细教程_哈哈哈哈哈开船的博客-CSDN博客
git clone https://github.com/nacos-group/nacos-docker.git
[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
使用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"]
修改后的文件如下
# 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
[root@localhost build]# docker build -t nacos-dm:2.2.3 .
[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
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