抬头仰望星空,是否能发现自己的渺小。

伪斜杠青年

人们总是混淆了欲望和理想

Run Nexus Repository Manager 3 on ARM64

做了几年开发了,很多 Demo 代码以及自己的一些组件库,代码总堆着不是个办法,得慢慢抽出来做成 lib,于是自己搭个私服。

但 Nexus 官方并不提供 arm 版本的容器镜像,找了下,找到了这个:klo2k/nexus3 ,开源的,我也看过 Dockerfile 了,更新了一年多,下载量也不低,相对可靠。老规矩,直接上 docker-compose 配置:

version: "3"
services:
   nexus3:
    container_name: nexus3
    image: klo2k/nexus3
    ports:
       - "8085:8081"
    network_mode: "nas"
    environment:
          - INSTALL4J_ADD_VM_PARAMS= -Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data/prefs
    volumes:
        - /home/docker_data/nexus-data:/nexus-data

需要修改的地方有3个:

  • network_mode: “nas”

改为自己的 network,可以使用 docker network create 进行创建。

  • volumes: – /home/docker_data/nexus-data

持久化映射路径请自行修改。

  • 对外暴露端口8085,可自行修改。

保存为 nexus3.yml 然后创建容器:

docker-compose -p code -f "nexus3.yml" up -d --build

启动时会报一个错:

mkdir: cannot create directory '../sonatype-work/nexus3/tmp': Permission denied

因为这个容器的配置中 UID GID 都为200,映射的宿主用户为1000,自然权限有问题,有人说直接给 privileged 权限,我觉得大可不必,直接给映射文件夹赋权限 777 重启容器即可:

chmod 777 /home/docker_data/nexus-data

然后即可在本机8085端口访问到 Nexus3,因与官方容器的区别仅为支持 ARM64 其他配置与官方无差,可直接参考:

https://hub.docker.com/r/sonatype/nexus3/

另外我的树莓派只有 8G 内存,所以 JVM 内存配置为官方指定最低的 2703m,有一说一,这东西确实占内存而且慢。

以上。

参考:https://help.sonatype.com/repomanager3/installation/system-requirements#SystemRequirements-MemoryRequirements


本站由以下主机服务商提供服务支持:

0条评论

发表评论