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

1、事先准备

  • 在一个arm架构机器上安装docker
  • 下载nexus的linux版(https://www.sonatype.com/download-oss-sonatype)
  • 下载centos的arm架构镜像(docker pull centos-centos8.4.2105)
  • 下载arm版本的java8(https://www.oracle.com/cn/java/technologies/downloads/archive/)

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

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

#!/bin/bashumask 0027JAVA_HOME="/usr/local/jdk.1.8.0_391"PATH=$JAVA_HOME/bin:$PATHnexus_base="/opt/nexus"if [ -z "$(ls -A ${nexus_base})" ]; thencd /opttar -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.gzficd ${nexus_base}/nexus-3.29.2-02/binexec ./nexus run

3、编写Dockerfile

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

FROM centos:centos8.4.2105ENV NEXUS_VERSION="3.29.2-02" ENV NEXUS_BASE="/opt/nexus"ENV JRE_VERSION="8u391"RUN groupadd -g 1000nexus && 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 /optCOPY start-nexus-repository-manager.sh /optRUN chown -R nexus:nexus ${NEXUS_BASE} /opt/start-nexus-repository-manager.shRUN chmod +x /opt/start-nexus-repository-manager.shVOLUME ${NEXUS_BASE}EXPOSE8081 8443USER nexusCMD ["sh", "-c", "/opt/start-nexus-repository-manager.sh"]

4、制作镜像

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

5、测试运行nexus

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

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

docker ps

访问IP:8081