Docker 部署 Nexus3
604人浏览 / 0人评论
准备
# 拉取镜像
docker pull sonatype/nexus3
# 普通运行(如果不需要配置https,运行如下命令成功后不用再做其他修改)
docker run -itd -p 10004:8081 -v D:\Docker\nexus\data:/nexus-data --privileged=true --restart=always --name nexus sonatype/nexus3
# 执行 docker logs -f nexus 查看日志,出现类似如下内容说明运行成功:
-------------------------------------------------
Started Sonatype Nexus OSS 3.58.1-02
-------------------------------------------------
# 测试
## 浏览器访问 localhost:10004
## 默认默认账号为:admin,默认密码在 D:\Docker\nexus\data\admin.password 中,登陆成功后按照提示修改密码。
## 如果只打算给自己或公司使用,就禁用匿名访问,这样拉取jar包时需要使用账号密码。
# 复制文件
docker cp nexus:/opt/sonatype/nexus/etc/jetty D:\Docker\nexus\jetty
docker cp nexus:/opt/sonatype/nexus/etc/nexus-default.properties D:\Docker\nexus\nexus-default.properties
# 删除容器
docker rm -f nexus
配置https
# 修改 D:\Docker\nexus\nexus-default.properties 文件
## 添加如下内容
application-port-ssl=443
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml,${jetty.etc}/jetty-https.xml
# 在 D:\Docker\nexus 目录下新建 ssl 文件夹,然后将后缀为 .jks 的证书文件复制进去
# 修改 D:\Docker\nexus\jetty\jetty-https.xml 文件
## 需要修改的内容如下,如果申请证书时没有设置密码,password 设置为空
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory$Server">
<Set name="KeyStorePath"><Property name="ssl.etc"/>/maven.jbritian.com.jks</Set>
<Set name="KeyStorePassword">password</Set>
<Set name="KeyManagerPassword">password</Set>
<Set name="TrustStorePath"><Property name="ssl.etc"/>/maven.jbritian.com.jks</Set>
<Set name="TrustStorePassword">password</Set>
<Set name="EndpointIdentificationAlgorithm"></Set>
<Set name="NeedClientAuth"><Property name="jetty.ssl.needClientAuth" default="false"/></Set>
<Set name="WantClientAuth"><Property name="jetty.ssl.wantClientAuth" default="false"/></Set>
<Set name="IncludeProtocols">
<Array type="java.lang.String">
<Item>TLSv1.2</Item>
</Array>
</Set>
</New>
# 启动
docker run -itd -p 10004:8081 -p 44304:443 -v D:\Docker\nexus\data:/nexus-data -v D:\Docker\nexus\ssl:/opt/sonatype/nexus/etc/ssl -v D:\Docker\nexus\jetty:/opt/sonatype/nexus/etc/jetty -v D:\Docker\nexus\nexus-default.properties:/opt/sonatype/nexus/etc/nexus-default.properties --privileged=true --restart=always --name nexus sonatype/nexus3
# 测试
## 浏览器分别访问 localhost:10004 和 https://localhost:44304
使用
java项目的pom文件中使用
<repositories>
<repository>
<id>central</id>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
<repository>
<id>nexus-jbritian</id>
<url>https://maven.jbritian.com/repository/maven-public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
maven的settings.xml文件中使用
<mirrors>
<mirror>
<id>nexus-jbritian</id>
<mirrorOf>central</mirrorOf>
<name>Nexus JBritian</name>
<url>https://maven.jbritian.com/repository/maven-public</url>
</mirror>
</mirrors>
上传
手动上传
参考:https://blog.csdn.net/sinat_37729104/article/details/119791003
问题
1、nexus没有中文面板,无法设置中文。
2、报错:admin com.sonatype.nexus.plugins.outreach.internal.outreach.SonatypeOutreach。
参考:https://www.jianshu.com/p/718c7d98e1e0
禁用 Outreach Management 即可:
全部评论