0
点赞
收藏
分享

微信扫一扫

docker-compose部署nexus

秦瑟读书 2022-02-20 阅读 247
docker

1、docker-compose部署nexus

docker-compose

version: '3'
services:
  nexus:
    restart: always
    image: sonatype/nexus3:3.29.0
    container_name: nexus
    ports:
      - "8081:8081"
    volumes:
      - /data/nexus/data:/nexus-data

mkdir -p /data/nexus/data #按需修改
# 目录权限
chmod -R 777 /data/nexus/data
# start
dockr-compose up -d
# stop
docker-compose down

ps:注意目录权限问题及默认最低配置

2、解决因内存不足导致启动失败(不建议使用,尽量满足其最低配置要求)

默认配置

JVM HeapJVM DirectHost Physical/RAM
Minimum ( default )2703MB2703MB8GB
Maximum4GB(host physical/RAM * 2/3) - JVM max heapno limit

General Memory Guidelines

  • minimum physical/RAM memory on the host 8GB
  • minimum heap ( -Xms ) must equal set maximum heap ( -Xmx )
  • minimum heap size 2703MB
  • maximum heap size <= 4GB
  • minimum direct memory ( -XX:MaxDirectMemorySize ) size 2703MB
  • minimum unallocated host physical/RAM memory should be no less than 1/3 of total physical RAM to allow for virtual memory swap
  • max heap + max direct memory <= host physical/RAM * 2/3

总结:至少需要4核8G,我们可以自行修改bin目录中的nexus.vmoptions文件来减少内存需求,因为我们使用docker部署,所以我们可以基于官方镜像来制作我们需要的镜像

nexus.vmoptions默认的配置

-Xms2703m
-Xmx2703m
-XX:MaxDirectMemorySize=2703m
-XX:+UnlockDiagnosticVMOptions
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Dkaraf.log=../sonatype-work/nexus3/log
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false
-Djava.endorsed.dir=lib/endorsed

查看官方docker镜像配置内存的方式为

在这里插入图片描述

所以我们可以自定义Dockfile文件来修改此镜像配置(我的服务器配置为2核2G)

Dockerfile

vi Dockerfile
FROM sonatype/nexus3:3.37.2
ENV INSTALL4J_ADD_VM_PARAMS="-Xms256m -Xmx256m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"
docker build -t local/nexus3:3.37.2 .

修改docker-compose.yml文件的镜像

version: '3'
services:
  nexus:
    restart: always
    image: local/nexus3:3.37.2
    container_name: nexus
    ports:
      - "8081:8081"
    volumes:
      - /data/nexus/data:/nexus-data
mkdir -p /data/nexus/data # 位置按需修改
# 目录权限
chmod -R 777 /data/nexus/data
# start
dockr-compose up -d
# top
docker-compose down
举报

相关推荐

0 条评论