nacos v2.5.2 源码打包
·
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
更多推荐




所有评论(0)