docker swarm部署nexus3

docker swarm部署nexus3

数据卷挂载nexus数据目录

mkdir -p /usr/local/nexus3/
chown -R 200 /usr/local/nexus3/

创建overlay网络

docker network create -d overlay platform

添加nexus.host标签

添加nexus.host标签,值为ljh2,配置文件可以通过标签设置部署节点

docker node update ljh2  --label-add nexus.host=ljh2

创建docker-swarm配置文件

设置对接网络为platform,platform为外部网络

version: '3.6'

services:
  nexus3:
    image: sonatype/nexus3
    ports:
      - "8081:8081"
    volumes:
      - /usr/local/nexus3/:/nexus-data
    networks:
      - platform
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.labels.nexus.host == ljh2]
networks:
  platform:
    external: true    

部署nexus

docker stack deploy -c docker-nexus3.yml nexus3

nexus仓库类型

类型描述
hosted类型的仓库,内部项目的发布仓库
releases内部的模块中release模块的发布仓库
snapshots发布内部的SNAPSHOT模块的仓库
proxy类型的仓库,从远程中央仓库中寻找数据的仓库
group类型的仓库,组仓库用来方便我们开发人员进行设置的仓库

nexus3默认仓库

仓库名称仓库类型
maven-publicgroup(将仓库包含在组中)
maven-centralproxy(远程获取)
maven-releaseshosted(宿主仓库,本地仓库)
maven-snapshotshosted(宿主仓库,本地仓库)

maven-public为maven-central,maven-releases,maven-snapshots的组

可收到添加阿里云仓库与jboss仓库,再加入到maven-public组中

仓库名仓库地址
阿里云http://maven.aliyun.com/nexus/content/groups/public/
jbooshttps://repository.jboss.org/nexus/content/groups/public-jboss/

让所有maven项目使用nexus私服

编辑settings.xml设置仓库地址

<!-- 本机所有的maven项目都使用私服的组件 -->
<profile>
    <id>nexus</id>
    <repositories>
        <repository>
            <!-- id 为cental 表示覆盖中央仓库位置,url已无效,可随意输入,开启快照版本支持 -->
            <id>central</id>
            <url>http://central</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>http://central</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
</profile>
<profile>
	<id>jdk1.8</id>
	<activation>
  		<jdk>1.8</jdk>
  		<activeByDefault>true</activeByDefault>
	</activation>
	<properties>
  		<maven.compiler.source>1.8</maven.compiler.source>
  		<maven.compiler.target>1.8</maven.compiler.target>
  		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
</profile>
<!-- 激活profile -->
<activeProfiles>
    <activeProfile>nexus</activeProfile>
    <activeProfile>jdk1.8</activeProfile>
</activeProfiles>

编辑settings.xml文件,设置所有下载都从私服下载构建

<mirror>
    <!--该镜像的唯一标识符。id用来区分不同的mirror元素 -->
    <id>maven-public</id>
    <!--镜像名称 -->
    <name>maven-public</name>
    <!--*指的是访问任何仓库都使用我们的私服-->
    <mirrorOf>*</mirrorOf>
    <url>http://ljh2:8081/repository/maven-public/</url>
</mirror>

编辑settings.xml文件,设置部署仓库的用户名与密码

<server>
    <!-- 私服仓库名称 -->
    <id>maven-releases</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>maven-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
	<id>maven-public</id>
	<username>admin</username>
	<password>admin123</password>
</server>

编辑pom文件

<distributionManagement>
    <repository>
        <!-- id 与 server中的id一直-->
        <id>maven-releases</id>
        <name>Releases</name>
        <url>http://ljh2:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>maven-snapshots</id>
        <name>Snapshot</name>
        <url>http://ljh2:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

docker nexus3 image document

Running

docker run -d -p 8081:8081 --name nexus sonatype/nexus3

Persistent Data

1.Use a docker volume

docker volume create --name nexus-data
docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3

2.Mount a host directory as the volume

mkdir /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data
docker run -d -p 8081:8081 --name nexus -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

Notes

Default credentials are: admin / admin123

nexus-configuration

变量路径
installDirectory/opt/sonatype/nexus
workingDirectory/nexus-data
temporaryDirectory/nexus-data/tmp
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值