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-public | group(将仓库包含在组中) |
maven-central | proxy(远程获取) |
maven-releases | hosted(宿主仓库,本地仓库) |
maven-snapshots | hosted(宿主仓库,本地仓库) |
maven-public为maven-central,maven-releases,maven-snapshots的组
可收到添加阿里云仓库与jboss仓库,再加入到maven-public组中
仓库名 | 仓库地址 |
---|---|
阿里云 | http://maven.aliyun.com/nexus/content/groups/public/ |
jboos | https://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 |