From 49b007ef80de72ec4f2fff1dab54fed21e5b398f Mon Sep 17 00:00:00 2001 From: life <46099295+clcc2019@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:41:42 +0800 Subject: [PATCH 1/7] Update Dockerfile.Slim update base image --- build/Dockerfile.Slim | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/build/Dockerfile.Slim b/build/Dockerfile.Slim index 987cf542..79bde007 100644 --- a/build/Dockerfile.Slim +++ b/build/Dockerfile.Slim @@ -1,5 +1,5 @@ -FROM amd64/buildpack-deps:buster-curl as installer - +FROM bitnami/minideb:bookworm as installer +RUN install_packages curl ARG NACOS_VERSION=2.4.2.1 ARG HOT_FIX_FLAG="" @@ -8,7 +8,7 @@ RUN set -x \ && tar -xzvf /var/tmp/nacos-server.tar.gz -C /home \ && rm -rf /var/tmp/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql -FROM adoptopenjdk/openjdk8:jre8u372-b07 +FROM bitnami/java:1.8.422-6-debian-12-r6 # set environment ENV MODE="cluster" \ @@ -18,12 +18,6 @@ ENV MODE="cluster" \ CLUSTER_CONF="/home/nacos/conf/cluster.conf" \ FUNCTION_MODE="all" \ NACOS_USER="nacos" \ - JAVA="/opt/java/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" \ TZ="Asia/Shanghai" From eb7e24aa53cc6c06ccf293dd614e34d8ac4ddf18 Mon Sep 17 00:00:00 2001 From: life <46099295+clcc2019@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:43:57 +0800 Subject: [PATCH 2/7] Create nacos-logback.xml --- build/conf/nacos-logback.xml | 668 +++++++++++++++++++++++++++++++++++ 1 file changed, 668 insertions(+) create mode 100644 build/conf/nacos-logback.xml diff --git a/build/conf/nacos-logback.xml b/build/conf/nacos-logback.xml new file mode 100644 index 00000000..ca9fe4e0 --- /dev/null +++ b/build/conf/nacos-logback.xml @@ -0,0 +1,668 @@ + + + + + + + + + + ${nacos.home}/logs/cmdb-main.log + true + + ${nacos.home}/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i + 1GB + 3 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/naming-server.log + true + + ${LOG_HOME}/naming-server.log.%d{yyyy-MM-dd}.%i + 1GB + 3 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + 0 + 1024 + true + + + + + ${LOG_HOME}/naming-raft.log + true + + ${LOG_HOME}/naming-raft.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + 0 + 1024 + true + + + + + + ${LOG_HOME}/naming-distro.log + true + + ${LOG_HOME}/naming-distro.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + 0 + 1024 + true + + + + + ${LOG_HOME}/naming-event.log + true + + ${LOG_HOME}/naming-event.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + 0 + 1024 + true + + + + + ${LOG_HOME}/naming-push.log + true + + ${LOG_HOME}/naming-push.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + ${LOG_HOME}/naming-rt.log + true + + ${LOG_HOME}/naming-rt.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %msg%n + UTF-8 + + + + + ${LOG_HOME}/naming-performance.log + true + + ${LOG_HOME}/naming-performance.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + + ${LOG_HOME}/config-dump.log + true + + ${LOG_HOME}/config-dump.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + ${LOG_HOME}/config-pull.log + true + + ${LOG_HOME}/config-pull.log.%d{yyyy-MM-dd}.%i + 20MB + 7 + 128MB + true + + + %date %level %msg%n%n + UTF-8 + + + + ${LOG_HOME}/config-fatal.log + true + + ${LOG_HOME}/config-fatal.log.%d{yyyy-MM-dd}.%i + 20MB + 7 + 128MB + true + + + %date %level %msg%n%n + UTF-8 + + + + ${LOG_HOME}/config-memory.log + true + + ${LOG_HOME}/config-memory.log.%d{yyyy-MM-dd}.%i + 20MB + 7 + 128MB + true + + + %date %level %msg%n%n + UTF-8 + + + + ${LOG_HOME}/config-pull-check.log + true + + ${LOG_HOME}/config-pull-check.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %msg%n + UTF-8 + + + + + ${LOG_HOME}/cconfig-client-requestonfig-client-request.log + true + + ${LOG_HOME}/config-client-request.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date|%msg%n + UTF-8 + + + + + ${LOG_HOME}/config-trace.log + true + + ${LOG_HOME}/config-trace.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date|%msg%n + UTF-8 + + + + + ${LOG_HOME}/config-notify.log + true + + ${LOG_HOME}/config-notify.log.%d{yyyy-MM-dd}.%i + 1GB + 7 + 3GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/config-server.log + true + + ${LOG_HOME}/config-server.log.%d{yyyy-MM-dd}.%i + 50MB + 7 + 512MB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/nacos.log + true + + ${LOG_HOME}/nacos.log.%d{yyyy-MM-dd}.%i + 50MB + 7 + 512MB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/nacos-address.log + true + + ${LOG_HOME}/nacos-address.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + + ${LOG_HOME}/core-auth.log + true + + ${LOG_HOME}/core-auth.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/protocol-raft.log + true + + ${LOG_HOME}/protocol-raft.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/protocol-distro.log + true + + ${LOG_HOME}/protocol-distro.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/nacos-cluster.log + true + + ${LOG_HOME}/nacos-cluster.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + + ${LOG_HOME}/remote.log + true + + ${LOG_HOME}/remote.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/remote-digest.log + true + + ${LOG_HOME}/remote-digest.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + ${LOG_HOME}/remote-push.log + true + + ${LOG_HOME}/remote-push.log.%d{yyyy-MM-dd}.%i + 2GB + 7 + 7GB + true + + + %date %level %msg%n%n + UTF-8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From bf7aca2aa4d9724460b09ad8e75def4ad45e7c67 Mon Sep 17 00:00:00 2001 From: life <46099295+clcc2019@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:45:23 +0800 Subject: [PATCH 3/7] Update docker-startup.sh --- build/bin/docker-startup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/bin/docker-startup.sh b/build/bin/docker-startup.sh index 879f31a0..f7e1faae 100755 --- a/build/bin/docker-startup.sh +++ b/build/bin/docker-startup.sh @@ -32,13 +32,13 @@ function print_servers() { #=========================================================================================== JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 " if [[ "${MODE}" == "standalone" ]]; then - JAVA_OPT="${JAVA_OPT} -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN}" + JAVA_OPT="${JAVA_OPT} -server -XX:+UseContainerSupport -XX:MaxMetaspaceSize=256m -XX:InitiatingHeapOccupancyPercent=45 -XX:MaxGCPauseMillis=200 -XX:+UseG1GC -XX:NewRatio=2 -XX:MaxRAMPercentage=70.0 -Xss512k" JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true" else if [[ "${EMBEDDED_STORAGE}" == "embedded" ]]; then JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true" fi - JAVA_OPT="${JAVA_OPT} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}" + JAVA_OPT="${JAVA_OPT} -server -XX:+UseContainerSupport -XX:MaxMetaspaceSize=256m -XX:InitiatingHeapOccupancyPercent=45 -XX:MaxGCPauseMillis=200 -XX:+UseG1GC -XX:NewRatio=2 -XX:MaxRAMPercentage=70.0 -Xss512k -XX:MetaspaceSize=128m" if [[ "${NACOS_DEBUG}" == "y" ]]; then JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n" fi From dfca2713bac233f86d6248d4e74fcd2accba5b29 Mon Sep 17 00:00:00 2001 From: dslife2024 <46099295+clcc2019@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:00:08 +0800 Subject: [PATCH 4/7] Update Dockerfile add nonroot --- build/Dockerfile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index bfb605a4..4daab80b 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -38,12 +38,18 @@ RUN set -x \ ADD bin/docker-startup.sh bin/docker-startup.sh ADD conf/application.properties conf/application.properties +# add nonroot +RUN useradd -r -u 1001 -g root nacos +RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true + # 设置启动日志目录 RUN mkdir -p logs \ - && touch logs/start.out \ - && ln -sf /dev/stdout logs/start.out \ - && ln -sf /dev/stderr logs/start.out \ + && touch logs/start.out \ + && ln -sf /dev/stdout logs/start.out \ + && ln -sf /dev/stderr logs/start.out \ + && chown -R nacos:root /home/nacos \ && chmod +x bin/docker-startup.sh +USER 1001 EXPOSE 8848 -ENTRYPOINT ["sh","bin/docker-startup.sh"] \ No newline at end of file +ENTRYPOINT ["sh","bin/docker-startup.sh"] From 27153a513677df8700888fc231139a87867fd57c Mon Sep 17 00:00:00 2001 From: dslife2024 <46099295+clcc2019@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:02:08 +0800 Subject: [PATCH 5/7] Update Dockerfile.Slim --- build/Dockerfile.Slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Dockerfile.Slim b/build/Dockerfile.Slim index 79bde007..49811148 100644 --- a/build/Dockerfile.Slim +++ b/build/Dockerfile.Slim @@ -1,6 +1,6 @@ FROM bitnami/minideb:bookworm as installer RUN install_packages curl -ARG NACOS_VERSION=2.4.2.1 +ARG NACOS_VERSION=2.4.3 ARG HOT_FIX_FLAG="" RUN set -x \ @@ -8,7 +8,7 @@ RUN set -x \ && tar -xzvf /var/tmp/nacos-server.tar.gz -C /home \ && rm -rf /var/tmp/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql -FROM bitnami/java:1.8.422-6-debian-12-r6 +FROM bitnami/java:1.8-debian-12 # set environment ENV MODE="cluster" \ From 6159db89fdfa3816aa294caf043774c2a1f965a9 Mon Sep 17 00:00:00 2001 From: dslife2024 <46099295+clcc2019@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:16:25 +0800 Subject: [PATCH 6/7] Update Dockerfile --- build/Dockerfile | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/build/Dockerfile b/build/Dockerfile index 4daab80b..5ce044fa 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,39 +1,36 @@ -FROM alpine:latest -LABEL maintainer="pader " +FROM bitnami/minideb:bookworm AS installer +RUN install_packages wget ca-certificates +ARG NACOS_VERSION=2.4.3 +ARG HOT_FIX_FLAG="" # 安装依赖 -RUN apk add --no-cache openjdk8-jre-base curl iputils ncurses vim libcurl bash +RUN set -x \ + && wget -O /var/tmp/nacos-server.tar.gz https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz \ + && tar -xzvf /var/tmp/nacos-server.tar.gz -C /home \ + && rm -rf /var/tmp/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql -# 设置环境变量 +FROM bitnami/java:1.8-debian-12 + +# set env 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-openjdk" \ NACOS_USER="nacos" \ - JAVA="/usr/lib/jvm/java-1.8-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" + TZ="Asia/Shanghai" -ARG NACOS_VERSION=2.4.2.1 +# build target version +ARG NACOS_VERSION=2.4.3 ARG HOT_FIX_FLAG="" WORKDIR $BASE_DIR -# 下载并安装 Nacos -RUN set -x \ - && curl -SL "https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz" -o nacos-server.tar.gz \ - && tar -xzvf nacos-server.tar.gz -C /home \ - && rm -rf nacos-server.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 +# copy bin to workdir +COPY --from=installer ["/home/nacos", "/home/nacos"] ADD bin/docker-startup.sh bin/docker-startup.sh ADD conf/application.properties conf/application.properties From 0d960d6c90dc8b81d4896245be4b8ca310bb22e8 Mon Sep 17 00:00:00 2001 From: dslife2024 <46099295+clcc2019@users.noreply.github.com> Date: Thu, 5 Dec 2024 18:18:08 +0800 Subject: [PATCH 7/7] Update Dockerfile.Slim --- build/Dockerfile.Slim | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/build/Dockerfile.Slim b/build/Dockerfile.Slim index 49811148..26f601e7 100644 --- a/build/Dockerfile.Slim +++ b/build/Dockerfile.Slim @@ -1,16 +1,16 @@ -FROM bitnami/minideb:bookworm as installer -RUN install_packages curl +FROM bitnami/minideb:bookworm AS installer +RUN install_packages wget ca-certificates ARG NACOS_VERSION=2.4.3 ARG HOT_FIX_FLAG="" RUN set -x \ - && curl -SL --output /var/tmp/nacos-server.tar.gz https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz \ + && wget -O /var/tmp/nacos-server.tar.gz https://github.com/alibaba/nacos/releases/download/${NACOS_VERSION}${HOT_FIX_FLAG}/nacos-server-${NACOS_VERSION}.tar.gz \ && tar -xzvf /var/tmp/nacos-server.tar.gz -C /home \ && rm -rf /var/tmp/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql FROM bitnami/java:1.8-debian-12 -# set environment +# set env ENV MODE="cluster" \ PREFER_HOST_MODE="ip"\ BASE_DIR="/home/nacos" \ @@ -30,13 +30,18 @@ COPY --from=installer ["/home/nacos", "/home/nacos"] ADD bin/docker-startup.sh bin/docker-startup.sh ADD conf/application.properties conf/application.properties +# add user +RUN useradd -r -u 1001 -g root nacos +RUN find / -perm /6000 -type f -exec chmod a-s {} \; || true + # 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 + && ln -sf /dev/stderr start.out \ + && chown -R nacos:root /home/nacos +USER 1001 EXPOSE 8848 ENTRYPOINT ["bin/docker-startup.sh"]