解决m1下nacos启动报错问题
参考 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"]
# 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 # 最大使用内存
Content type
Image
Digest
sha256:e7561985e…
Size
481.7 MB
Last updated
almost 4 years ago
docker pull qydockerhub/nacos-m1:2.1.2