Nexus是一个强大的仓库管理器,极大的简化了内部仓库的维护和外部仓库的访问
基于docker安装nexus
docker pull sonatype/nexus3
我在运行时候报了一个获取镜像超时的错误,ubuntu下面可以运行下面这个代码
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://3056ffe7.m.daocloud.io
进入/usr/local/docker/nexus/目录创建docker-compose.yml文件
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/data:/nexus-data
默认密码可以在admin.password 中间查看
在项目中使用私服
第一步:
修改setting.xml,在servers间增加服务节点
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>123</password>
</server>
注意snapshots用于发布snapshout版 (快照版)
releases用于发布release版
定义如下
Release: 1.0.0/1.0.0-RELEASE
Snapshot:1.0.0-SNAPSHOT
在pom.xml配置自动化部署
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.182.134:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.182.134:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意:
ID名称必须要和setting.xml中间的servers配置的Id一致
使用命令
mvn deploy
配置代理仓库
在pom.xml文件中间加上
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.182.134:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Plugin Repository</name>
<url>http://192.168.182.134:8081/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
搭建registry docker私服
简介:
官方的Docker Hub是一个管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推上去,但是有时我们的服务器无法联网,那么你就需要Docker Registry,他可以存储和管理自己的镜像
安装
进入/usr/local/docker/registry 没有的话自己创建一个
新建docker-compose.yml
version: '3.1'
services:
registry:
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
运行
docker-compose up
访问路径 http://192.168.182.134:5000/v2/ 192.168.182.134是自己ip
配置客户端(将之前的项目打为一个镜像上传到私服)
进入/etc/docker
修改daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["192.168.182.134:5000"]
}
重启docker
systemctl restart docker
使用docker-registry-frontend来管理镜像
直接加在/usr/local/docker/registry/docker-compose.yml
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- ./certs/frontend.crt:/etc/apache2/server.crt:ro
- ./certs/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST=192.168.182.134
- ENV_DOCKER_REGISTRY_PORT=5000
实现一次构建到处运行