制作飞腾(arm)芯片架构的nexus镜像

nexus官方没有arm架构的镜像,下面介绍一种自己制作镜像的方式

1、事先准备

2、编写运行nexus的脚本start-nexus-repository-manager.sh

下面脚本中的java版本和nexus版本需要根据自己下载的修改

#!/bin/bash
umask 0027
JAVA_HOME="/usr/local/jdk.1.8.0_391"
PATH=$JAVA_HOME/bin:$PATH
nexus_base="/opt/nexus"
if [ -z "$(ls -A ${nexus_base})" ]; then
  cd /opt
  tar -zxf nexus-3.29.2-02-unix.tar.gz -C ${nexus_base}
  chown -R nexus:nexus ${nexus_base}
  rm -rf nexus-3.29.2-02-unix.tar.gz
fi
cd ${nexus_base}/nexus-3.29.2-02/bin
exec ./nexus run


3、编写Dockerfile

下面文件中的nexus和java版本根据实际情况修改

FROM centos:centos8.4.2105
ENV NEXUS_VERSION="3.29.2-02" 
ENV NEXUS_BASE="/opt/nexus"
ENV JRE_VERSION="8u391"
RUN groupadd -g 1000  nexus && useradd -r -u 1000 -g 1000 -m -c "Nexus Repository Manager" -d ${NEXUS_BASE} -s /bin/false nexus && mkdir -p ${NEXUS_BASE}
ADD jdk-${JRE_VERSION}-linux-aarch64.tar.gz /usr/local/
COPY nexus-${NEXUS_VERSION}-unix.tar.gz /opt
COPY start-nexus-repository-manager.sh /opt
RUN chown -R nexus:nexus ${NEXUS_BASE} /opt/start-nexus-repository-manager.sh
RUN chmod +x /opt/start-nexus-repository-manager.sh
VOLUME ${NEXUS_BASE}
EXPOSE  8081 8443
USER nexus
CMD ["sh", "-c", "/opt/start-nexus-repository-manager.sh"]

4、制作镜像

docker build -t nexus-arm:3.29-2-02

5、测试运行nexus

mkdir -p /opt/nexus
chmod 777 -R /opt/nexus
docker run -it -d --name nexus -v /opt/nexus:/opt/nexus -p 8081:8081 nexus-arm:3.29.2-02

如果机器配置差,启动时间很长,我启动了大概10分钟左右

docker ps
在这里插入图片描述
访问IP:8081
在这里插入图片描述