Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。
服务器IP | 192.168.113.48 |
---|---|
端口 | 8931 |
安装目录 | /home/work/docker-nexus |
数据映射目录 | /home/work/docker-nexus/data |
创建安装目录,进入到安装目录中编辑并保存docker-compose.yml文件
vim docker-compose.yml
version: ‘3‘
services:
nexus:
image: ‘sonatype/nexus3‘
container_name: nexus
restart: always
environment:
- TZ=Asia/Shanghai
ports:
- ‘8931:8081‘
volumes:
- ‘/home/work/docker-nexus/data:/nexus-data‘
在安装目录下启动服务
[root@node03 docker-nexus]# docker-compose up -d
Creating network "docker-nexus_default" with the default driver
Creating nexus ... done
[root@node03 docker-nexus]# docker-compose logs -f
Attaching to nexus
nexus | mkdir: cannot create directory ‘../sonatype-work/nexus3/log‘: Permission denied
nexus | mkdir: cannot create directory ‘../sonatype-work/nexus3/tmp‘: Permission denied
nexus | OpenJDK 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory
nexus |
nexus | Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log
nexus | Warning: Forcing option -XX:LogFile=/tmp/jvm.log
nexus | java.io.FileNotFoundException: ../sonatype-work/nexus3/tmp/i4j_ZTDnGON8hezynsMX2ZCYAVDtQog=.lock (No such file or directory)
nexus | at java.io.RandomAccessFile.open0(Native Method)
nexus | at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
nexus | at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
nexus | at com.install4j.runtime.launcher.util.SingleInstance.check(SingleInstance.java:72)
nexus | at com.install4j.runtime.launcher.util.SingleInstance.checkForCurrentLauncher(SingleInstance.java:31)
nexus | at com.install4j.runtime.launcher.UnixLauncher.checkSingleInstance(UnixLauncher.java:88)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:67)
nexus | java.io.FileNotFoundException: /nexus-data/karaf.pid (Permission denied)
nexus | at java.io.FileOutputStream.open0(Native Method)
nexus | at java.io.FileOutputStream.open(FileOutputStream.java:270)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
nexus | at org.apache.karaf.main.InstanceHelper.writePid(InstanceHelper.java:127)
nexus | at org.apache.karaf.main.Main.launch(Main.java:243)
nexus | at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
nexus | at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
nexus | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
nexus | at java.lang.reflect.Method.invoke(Method.java:498)
nexus | at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
nexus | java.lang.RuntimeException: /nexus-data/log/karaf.log (No such file or directory)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:102)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlersInternal(BootstrapLogManager.java:137)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlers(BootstrapLogManager.java:70)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.configureLogger(BootstrapLogManager.java:75)
nexus | at org.apache.karaf.main.Main.launch(Main.java:244)
nexus | at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
nexus | at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
nexus | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
nexus | at java.lang.reflect.Method.invoke(Method.java:498)
nexus | at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
nexus | Caused by: java.io.FileNotFoundException: /nexus-data/log/karaf.log (No such file or directory)
nexus | at java.io.FileOutputStream.open0(Native Method)
nexus | at java.io.FileOutputStream.open(FileOutputStream.java:270)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
nexus | at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.open(BootstrapLogManager.java:193)
nexus | at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.<init>(BootstrapLogManager.java:182)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:100)
nexus | ... 12 more
nexus | Error creating bundle cache.
nexus | Unable to update instance pid: Unable to create directory /nexus-data/instances
nexus | mkdir: cannot create directory ‘../sonatype-work/nexus3/log‘: Permission denied
nexus | mkdir: cannot create directory ‘../sonatype-work/nexus3/tmp‘: Permission denied
nexus | OpenJDK 64-Bit Server VM warning: Cannot open file ../sonatype-work/nexus3/log/jvm.log due to No such file or directory
nexus |
nexus | Warning: Cannot open log file: ../sonatype-work/nexus3/log/jvm.log
nexus | Warning: Forcing option -XX:LogFile=/tmp/jvm.log
nexus | java.io.FileNotFoundException: ../sonatype-work/nexus3/tmp/i4j_ZTDnGON8hezynsMX2ZCYAVDtQog=.lock (No such file or directory)
nexus | at java.io.RandomAccessFile.open0(Native Method)
nexus | at java.io.RandomAccessFile.open(RandomAccessFile.java:316)
nexus | at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)
nexus | at com.install4j.runtime.launcher.util.SingleInstance.check(SingleInstance.java:72)
nexus | at com.install4j.runtime.launcher.util.SingleInstance.checkForCurrentLauncher(SingleInstance.java:31)
nexus | at com.install4j.runtime.launcher.UnixLauncher.checkSingleInstance(UnixLauncher.java:88)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:67)
nexus | java.io.FileNotFoundException: /nexus-data/karaf.pid (Permission denied)
nexus | at java.io.FileOutputStream.open0(Native Method)
nexus | at java.io.FileOutputStream.open(FileOutputStream.java:270)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:101)
nexus | at org.apache.karaf.main.InstanceHelper.writePid(InstanceHelper.java:127)
nexus | at org.apache.karaf.main.Main.launch(Main.java:243)
nexus | at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
nexus | at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
nexus | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
nexus | at java.lang.reflect.Method.invoke(Method.java:498)
nexus | at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
nexus | java.lang.RuntimeException: /nexus-data/log/karaf.log (No such file or directory)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:102)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlersInternal(BootstrapLogManager.java:137)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlers(BootstrapLogManager.java:70)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.configureLogger(BootstrapLogManager.java:75)
nexus | at org.apache.karaf.main.Main.launch(Main.java:244)
nexus | at org.sonatype.nexus.karaf.NexusMain.launch(NexusMain.java:113)
nexus | at org.sonatype.nexus.karaf.NexusMain.main(NexusMain.java:52)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
nexus | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
nexus | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
nexus | at java.lang.reflect.Method.invoke(Method.java:498)
nexus | at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
nexus | at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:69)
nexus | Caused by: java.io.FileNotFoundException: /nexus-data/log/karaf.log (No such file or directory)
nexus | at java.io.FileOutputStream.open0(Native Method)
nexus | at java.io.FileOutputStream.open(FileOutputStream.java:270)
nexus | at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
nexus | at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.open(BootstrapLogManager.java:193)
nexus | at org.apache.karaf.main.util.BootstrapLogManager$SimpleFileHandler.<init>(BootstrapLogManager.java:182)
nexus | at org.apache.karaf.main.util.BootstrapLogManager.getDefaultHandlerInternal(BootstrapLogManager.java:100)
nexus | ... 12 more
nexus | Error creating bundle cache.
nexus | Unable to update instance pid: Unable to create directory /nexus-data/instances
启动后查看日志,发现提示权限不足,为数据映射目录加上权限即可
[root@node03 docker-nexus]# chmod 777 /home/work/docker-nexus/data/
You have new mail in /var/spool/mail/root
[root@node03 docker-nexus]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------
nexus sh -c ${SONATYPE_DIR}/star ... Up 0.0.0.0:8931->8081/tcp
在浏览器中输入IP:端口,点击页面右上角登录,根据页面提示查找到初始密码,然后将初始密码复制
若输入ip:端口后,浏览器无法访问页面,可以稍等一会,查看日志确保nexus启动完成后再访问
[root@node03 docker-nexus]# cat data/admin.password
b05c1771-6be1-4cb2-9b4e-5cffb610099d
登录后会有一个弹窗,要求给admin用户重新设置一个新的密码,请记住这个设置的密码(本次安装设置的密码为admin_qazwsx)
点击"next",弹窗提示是否允许匿名用户访问,根据自己需求选择即可,本次安装选择"开启匿名访问"
Nexus安装成功,再根据需求进行相关配置即可。
原文:https://www.cnblogs.com/linanjie/p/13932377.html