nacos v2.5.2 源码打包

1:下载源码
git clone https://github.com/alibaba/nacos.git
cd nacos
git checkout 2.5.2

2:修改源码
 NamespaceController.java 类中的接口
/v1/console/namespaces

加上注解 (开启鉴权 如果类中的其他接口也需要开启鉴权也可以加这个注解)
@Secured(resource = AuthConstants.CONSOLE_RESOURCE_NAME_PREFIX + "namespaces", action = ActionTypes.READ)

3:编译构建
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

成功后会在 distribution/target/ 得到  nacos-server-2.5.2.tar.gz

4:制作docker镜像 (需要Dockerfile 和 docker-startup.sh脚本)
      用的 jdk 的镜像是 eclipse-temurin_8-jdk.tar
      docker build -t nacos:2.5.2-custom .

Dockerfile文件

FROM eclipse-temurin:8-jdk

WORKDIR /home/nacos

COPY nacos-server-2.5.2.tar.gz .

RUN tar -zxvf nacos-server-2.5.2.tar.gz \
    && mv nacos/* . \
    && rm -rf nacos nacos-server-2.5.2.tar.gz

# 👇 解压完再拷贝(关键)
COPY docker-startup.sh bin/docker-startup.sh

# 👇 关键:转换换行 + 赋权
RUN sed -i 's/\r$//' bin/docker-startup.sh \
    && chmod +x bin/docker-startup.sh

EXPOSE 8848

ENTRYPOINT ["bash", "bin/docker-startup.sh"]

docker-startup.sh脚本

#!/bin/sh

set -e

BASE_DIR=/home/nacos   # 👈 必须加

echo "========================================"
echo "Starting Nacos..."
echo "MODE: ${MODE}"
echo "========================================"

# JVM 参数
JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m"

# standalone 模式
if [ "$MODE" = "standalone" ]; then
  JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
fi

# 集群模式
if [ "$MODE" = "cluster" ]; then
  echo "Running in cluster mode"
fi

# 数据库配置(可选)
if [ ! -z "$SPRING_DATASOURCE_PLATFORM" ]; then
  JAVA_OPT="${JAVA_OPT} -Dspring.datasource.platform=${SPRING_DATASOURCE_PLATFORM}"
fi

exec java ${JAVA_OPT} \
  -Dloader.path=plugins,plugins/health,plugins/cmdb,plugins/selector \
  -Dnacos.home=${BASE_DIR} \
  -jar target/nacos-server.jar \
  --spring.config.additional-location=file:${BASE_DIR}/conf/ \
  --logging.config=${BASE_DIR}/conf/nacos-logback.xml
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐