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"]