1.说明
本次编译是因为公司适配鲲鹏arm系列,业务涉及到了nacos-server,所以就选择最新版本进行了编译,期间也想直接使用官方镜像nacos/nacos-server: v2.1.2-slim、nacos/nacos-server:v2.2.0-slim,无一例外失败了,启动不了,所以最后只能选择源码编译,在制作镜像的方式进行。
2.编译服务器信息
#系统信息 [root@location ~ ]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Tercel)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)" ANSI_COLOR="0;31" #芯片信息 [root@location ~ ]# lscpu Architecture: aarch64 CPU op-mode(s): 64-bit Model name: Kunpeng-920
3.maven环境安装
#下载maven包 https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz #解压到指定目录 tar zxf apache-maven-3.9.6-bin.tar.gz -C /data/build/ #配置环境变量 添加到/etc/profile最后 export MAVEN_HOME=/data/build/apache-maven-3.9.6 export PATH=$PATH:$MAVEN_HOME/bin source /etc/profile
4.nacos编译
4.1 下载nacos源码包
https://github.com/alibaba/nacos/archive/refs/tags/2.3.2.tar.gz
4.2 解压
tar zxf nacos-2.3.2.tar.gz -C /data/build/
4.3 编译
cd /data/build/nacos-2.3.2 mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
4.4 拿到nacos编译包(两个一样)
ls /data/build/nacos-2.3.2/distribution/target nacos-server-2.3.2.tar.gz nacos-server-2.3.2.zip
4.5 可以进行启动测试,我当前部署单机版
cp -f /data/build/nacos-2.3.2/distribution/target/nacos-server-2.3.2.tar.gz /data/dockerfile/ cd /data/dockerfile tar zxf nacos-server-2.3.2.tar.gz cd nacos/bin && sh startup.sh -m standalone #启动单机版
ps -ef |grep nacos #查看是否有ancos进程
5.使用dockerfile做成镜像
5.1 编写dockerfile
#Dockerfile FROM arm64v8/centos:7 # 复制 JDK 压缩包到容器中的 /tmp 目录下 COPY jdk-8u271-linux-aarch64.tar.gz /tmp/ # 解压 JDK 压缩包到 /usr/lib/jvm 目录下 RUN tar -xzf /tmp/jdk-8u271-linux-aarch64.tar.gz -C /usr/local/ \ && rm /tmp/jdk-8u271-linux-aarch64.tar.gz # 设置 JAVA_HOME 环境变量 ENV JAVA_HOME /usr/local/jdk1.8.0_271 # 添加 JAVA_HOME 到 PATH ENV PATH $PATH:$JAVA_HOME/bin # 复制 nacos-server-2.3.2.tar.gz 到 /home 目录下 ADD nacos-server-2.3.2.tar.gz /home/ # 切换到 /home 目录并解压 nacos-server WORKDIR /home/nacos/bin/ COPY docker-startup.sh ./ # 暴露 Nacos 服务端口(如果需要) EXPOSE 38848 # 设置容器启动时执行的命令 CMD ["sh", "docker-startup.sh"]
5.2 编写nacos容器启动脚本docker-startup.sh
#!/bin/bash sh startup.sh -m standalone tail -f /dev/null
5.3 上传arm版本的jdk包
jdk-8u271-linux-aarch64.tar.gz #需自行下载对应的版本
5.4 制作镜像需要的文件如下
├── Dockerfile ├── docker-startup.sh ├── jdk-8u271-linux-aarch64.tar.gz ├── nacos-server-2.3.2.tar.gz
5.5 端口修改需求,因为我业务需要,所以需要修改对应的nacos监听端口,默认8848,我需要改为38848
#解压编译好的nacos-2.3.2.tar.gz,修改配置文件nacos/conf/application.properties ### Default web server port: server.port=8848 修改为 server.port=38848 #重新归档 tar zcf nacos-2.3.2.tar.gz nacos
5.6 制作镜像
docker build . -t 172.16.88.150:8888/public/arm/nacos-server:2.3.2
6.启动nacos容器(docker-compose)
6.1 下载arm版docker-compose
https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-aarch64 mv docker-compose-linux-aarch64 /usr/bin/ chmod +x /usr/bin/docker-compose
6.2 编写docker-compose.yaml文件
version: "3" services: nacos-derby: image: 172.16.88.150:8888/public/arm/nacos-server:2.3.2 container_name: nacos-slim volumes: - ${PWD}/logs/:/home/nacos/logs/ - ${PWD}/data/:/home/nacos/data/ ports: - "38848:38848" - "39848:9848" - "39555:9555"
6.3 启动
docker-compose up -d
7.参考文档
#nacos编译文档(arm) https://blog.csdn.net/m0_49419441/article/details/110633519 #maven下载文档(arm) https://blog.csdn.net/qq_34322136/article/details/135547189 #docker-compose下载文档(arm) https://blog.csdn.net/qq_23845083/article/details/130768859
标签:tar,nacos2.3,gz,server,nacos,2.3,docker,鲲鹏,arm From: https://www.cnblogs.com/Leonardo-li/p/18195798