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 即可:

全部评论