Sign inSign up

lhstack/nacos

By lhstack

•Updated almost 4 years ago

nacos alpine镜像,对原有docker版本的nacos轻量化之后的镜像

Image
1

2.7K

lhstack/nacos repository overview

⁠关于nacos2.2.x之后版本配置描述

⁠配置说明

环境变量中增加以下参数,方便以后迭代的版本中更灵活的使用

JVM_*:  如JVM_server_port=8088 ==> java -Dserver.port=8088 -jar x.jar
JVM_*__*: 如JVM_server_error_include__message=always ==> 最终会转换成-Dserver.error.include-message=always
ARG_*: 同JVM_*类似,只是作用于main的args参数,如ARG_server_port=8088 ==> java -jar x.jar --server.port=8088
ARG_*__*: 同JVM_*__*类似,参考ARG_*的作用域即可
JAVA_OPT_EXT: 作用于 java (之间的环境变量,用户可以自由扩展,但是此环境变量的含义实际上是设置外部的classpath) -jar x.jar
JVM_OPTS: 作用于 java (这里定义就是设置jvm的系统参数,用于jvm调优等) $JAVA_OPT_EXT -jar x.jar
NACOS_SERVERS: 这是一个特殊的环境变量,用于设置nacos集群的服务地址,如182.100.100.101 182.100.100.100
# 最终的效果会变成 java ${JVM_OPTS} ${JAVA_OPT_EXT} parsing(${JVM_*...|JVM_*__...}) -jar x.jar parsing(${ARG_*...|ARG_*__...})

⁠下面给出一个集群的demo,如需更深入的配置nacos的参数,请使用者去官网了解,根据这种配置映射模式去设置即可

⁠.env

#true为单机,false为集群 ==> -Dnacos.standalone=xxx
JVM_nacos_standalone="false"
#数据库类型 -Dspring.datasource.platform
JVM_spring_datasource_platform="mysql"
NACOS_SERVERS="182.100.100.101 182.100.100.100"
# 是否开启身份验证 ==> -Dnacos.core.auth.enabled=xxx
JVM_nacos_core_auth_enabled='"true"'
# ==> --management.endpoints.web.exposure.include='*'
ARG_management_endpoints_web_exposure_include='"*"'
ARG_db_url_0='"jdbc:mysql://10.43.33.6:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC"'
ARG_db_num='"1"'
JVM_OPTS="-Xmx512m -Xms512m -XX:+UseG1GC"
JVM_db_user_0="root"
JVM_db_password_0="123456"

⁠docker-compose.yml

version: '3'
services:
  nacos:
    container_name: nacos
    image: lhstack/nacos:2.2.0
    restart: always
    ports:
    - '8848:8848'
    - '9848:9848'
    healthcheck:
      test: ["CMD-SHELL","wget --no-cache --spider 'http://localhost:8848/nacos/actuator/health' || exit 1"]
      timeout: 2s
      interval: 10s
      retries: 5
      start_period: 15s
    env_file: .env
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 384M
    networks:
      nacos:
        ipv4_address: 182.100.100.100
  nacos1:
    container_name: nacos1
    image: lhstack/nacos:2.2.0
    restart: always
    ports:
    - '8849:8848'
    - '9849:9848'
    healthcheck:
      test: ["CMD-SHELL","wget --no-cache --spider 'http://localhost:8848/nacos/actuator/health' || exit 1"]
      timeout: 2s
      interval: 10s
      retries: 5
      start_period: 15s
    env_file: .env
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 384M
    networks:
      nacos:
        ipv4_address: 182.100.100.101
networks:
  nacos:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 182.100.0.0/16

⁠以下内容只作用于nacos2.2.x之前我构建的镜像版本,请注意区分

⁠配置同nacos官方相同

https://nacos.io/zh-cn/docs/quick-start-docker.html

⁠单机启动

注意,如果使用的是nacos2.x的版本,请在运行命令中暴露9848端口,9848端口为grpc交互端口,在最新的客户端中,是使用grpc作为协议交互

# standalone
docker run --name nacos -p 8848:8848 -e JVM_XMS="512m" -e -JVM_XMX="512m" -e JVM_MS="168m" -e JVM_MMS="168m" -e JVM_XMN="288m" -e MODE=standalone -d lhstack/nacos
# 数据库持久化方式
docker run --name nacos -p 8848:8848 -e MODE=standalone -e MYSQL_SERVICE_HOST="10.43.33.6" -e MYSQL_SERVICE_USER="root" -e MYSQL_SERVICE_PASSWORD="123456" -e MYSQL_SERVICE_DB_NAME="nacos" -e SPRING_DATASOURCE_PLATFORM="mysql" -e JVM_XMS="512m" -e -JVM_XMX="512m" -e JVM_MS="168m" -e JVM_MMS="168m" -e JVM_XMN="288m" -d lhstack/nacos

⁠docker-compose

集群部署

init目录中放nacos.sql文件,mysql在创建的过程中会初始化nacos数据库,开头加入两条sql
CREATE DATABASE `nacos` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `nacos`;
version: '3'
services:
  mysql:
    container_name: mysql
    image: mysql:8.0.28
    restart: always
    ports:
    - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
      TZ: Asia/Shanghai
    volumes:
    - ./data:/var/lib/mysql
    - ./init:/docker-entrypoint-initdb.d/ 
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: '512M'
    healthcheck:
      test: ["CMD","mysqladmin","-uroot","-p123456","ping","-h","localhost"]
      timeout: 20s
      retries: 10
    networks:
      nacos:
        ipv4_address: 182.100.36.36
  nacos:
    container_name: nacos
    image: lhstack/nacos:1.4.4
    restart: always
    ports:
    - '8848:8848'
    - '9848:9848'
    environment:
      MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
      NACOS_SERVERS: "182.100.100.101 182.100.100.100"
      TZ: Asia/Shanghai
      MYSQL_SERVICE_HOST: '182.100.36.36'
      MYSQL_SERVICE_USER: 'root'
      MYSQL_SERVICE_PASSWORD: '123456'
      MYSQL_SERVICE_DB_NAME: 'nacos'
      SPRING_DATASOURCE_PLATFORM: 'mysql'
      JVM_XMX: '384m'
      JVM_XMS: '384m'
      JVM_XMN: '192m'
      JVM_MS: '128m'
      JVM_MMS: '128m'
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    depends_on:
      mysql:
        condition: service_healthy
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 384M
    networks:
      nacos:
        ipv4_address: 182.100.100.100
  nacos1:
    container_name: nacos1
    image: lhstack/nacos:1.4.4
    restart: always
    ports:
    - '8849:8848'
    - '9849:9848'
    environment:
      MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
      TZ: Asia/Shanghai
      NACOS_SERVERS: "182.100.100.101 182.100.100.100"
      MYSQL_SERVICE_HOST: '182.100.36.36'
      MYSQL_SERVICE_USER: 'root'
      MYSQL_SERVICE_PASSWORD: '123456'
      MYSQL_SERVICE_DB_NAME: 'nacos'
      SPRING_DATASOURCE_PLATFORM: 'mysql'
      JVM_XMX: '384m'
      JVM_XMS: '384m'
      JVM_XMN: '192m'
      JVM_MS: '128m'
      JVM_MMS: '128m'
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    depends_on:
      mysql:
        condition: service_healthy
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 384M
    networks:
      nacos:
        ipv4_address: 182.100.100.101
networks:
  nacos:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 182.100.0.0/16
version: '3'
services:
  nacos:
    image: lhstack/nacos:1.4.2-alpine
    container_name: nacos
    restart: always
    ports:
    - '8848:8848'
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    volumes:
    - ./data:/home/nacos/data
    - ./logs:/home/nacos/logs
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
    environment:
      MODE: standalone
      JVM_XMS: 384m
      JVM_XMX: 384m
      JVM_MS: 128m
      JVM_MMS: 128m
      JVM_XMN: 192m
    networks:
      nacos:
        ipv4_address: 182.100.100.100
networks:
  nacos:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 182.100.0.0/16

docker-compose.yml使用mysql作为存储

version: '3'
services:
  nacos:
    container_name: nacos
    image: lhstack/nacos:1.4.2-alpine
    restart: always
    ports:
    - '8848:8848'
    environment:
      MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
      MODE: 'standalone'
      MYSQL_SERVICE_HOST: '10.43.33.6'
      MYSQL_SERVICE_USER: 'root'
      MYSQL_SERVICE_PASSWORD: '123456'
      MYSQL_SERVICE_DB_NAME: 'nacos'
      SPRING_DATASOURCE_PLATFORM: 'mysql'
      JVM_XMX: '320m'
      JVM_XMS: '320m'
      JVM_XMN: '192m'
      JVM_MS: '64m'
      JVM_MMS: '64m'
    logging:
      options:
        max-file: '1'
        max-size: '16k'
    deploy:
      resources:
        limits:
          cpus: '1'
          memory: 384M
    networks:
      nacos:
        ipv4_address: 182.100.100.100
networks:
  nacos:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 182.100.0.0/16

Tag summary

Content type

Image

Digest

sha256:3167d424c…

Size

168.9 MB

Last updated

about 4 years ago

docker pull lhstack/nacos