Sign inSign up

qydockerhub/nacos-m1

By qydockerhub

•Updated almost 4 years ago

Image
0

149

qydockerhub/nacos-m1 repository overview

⁠nacos - 2.1.2 - mac(m1-centos8) 镜像制作

解决m1下nacos启动报错问题

⁠1. Dockerfile文件

参考 nacos官方Dockerfile制作 (https://github.com/nacos-group/nacos-docker/build/Dockerfile⁠)

FROM centos:8.3.2011
MAINTAINER pader "[email protected]"

# 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/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.1.2
ARG HOT_FIX_FLAG=""

WORKDIR $BASE_DIR

# 解决yum源报错问题
RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

RUN set -x \
    && yum update -y \
    && yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel wget iputils nc vim libcurl-minimal
RUN wget  https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz -P /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.sh

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

⁠2. 搭配mysql8启动设置

  • docker-compose.yml
# docker-compose参考:https://github.com/nacos-group/nacos-docker/blob/master/example/standalone-mysql-5.7.yaml
# Nacos2.0.0兼容性文档:https://nacos.io/zh-cn/docs/2.0.0-compatibility.html
version: '3'

# 网桥 -> 方便相互通讯
networks:
  start_mysql:
    external: true

services:
  nacos:
    image: qydockerhub/nacos-m1:2.1.2    # 原镜像`nacos/nacos-server:2.0.3`
    container_name: nacos_server                                 # 容器名为'nacos_server'
    restart: unless-stopped                                              # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    env_file:
      - ../env/nacos-standlone-mysql.env
    volumes:                                                     # 数据卷挂载路径设置,将本机目录映射到容器目录
      - ../logs:/home/nacos/logs
      - ../init.d/custom.properties:/home/nacos/init.d/custom.properties
      - ../conf/application.properties:/home/nacos/conf/application.properties
      # mysql8版本以上才需要额外此配置信息 
      - ../plugins/mysql:/home/nacos/plugins/mysql
    environment:                        # 设置环境变量,相当于docker run命令中的-e
      - PREFER_HOST_MODE=hostname                 # 如果支持主机名可以使用hostname,否则使用ip,默认也是ip
      - MODE=standalone                           # 单机模式启动
      - SPRING_DATASOURCE_PLATFORM=mysql          # 数据源平台 仅支持mysql或不保存empty
      # TODO 修改mysql连接信息
      - MYSQL_SERVICE_HOST=mysql    # 注:这里不能为`127.0.0.1`或`localhost`方式!!!
      - MYSQL_SERVICE_DB_NAME=nacos_config        # 所需sql脚本位于 `nacos_xxx/nacos-mysql.sql`
      # mysql5.7 连接参数
#      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
      # mysql8 连接参数
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      # TODO 修改JVM调优参数
      - JVM_XMS=256m   #-Xms default :2g
      - JVM_XMX=256m   #-Xmx default :2g
      - JVM_XMN=164m    #-Xmn default :1g
      - JVM_MS=132m     #-XX:MetaspaceSize default :128m
      - JVM_MMS=132m    #-XX:MaxMetaspaceSize default :320m
      - NACOS_DEBUG=n  #是否开启远程debug,y/n,默认n
      - TOMCAT_ACCESSLOG_ENABLED=false #是否开始tomcat访问日志的记录,默认false
    ports:                              # 映射端口  (Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口:9848、9849)
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
      - "9555:9555"
    networks:
      - start_mysql
    mem_limit: 1000m   # 最大使用内存
  • 该配置文件依赖的mysql8已启动,若想要在同一个docker-compose.yaml需要单独配置mysql容器内容

Tag summary

Content type

Image

Digest

sha256:e7561985e…

Size

481.7 MB

Last updated

almost 4 years ago

docker pull qydockerhub/nacos-m1:2.1.2