下面介绍一下企业中经常使用的Maven私有公共仓库的搭建方法。该实例依赖的环境搭建过程,请参考:
搭建环境
Linux ubuntu1804:参见随意的蜗牛:Window安装Linux子系统
docker:参见随意的蜗牛:在Linux系统中安装docker
1、增加docker拉取的镜像源配置文件并填入内容
我的环境很慢,估计是国外的源太慢,所以增加了国内的源,如果搭建网速够快,可以不用改,忽略这一步。
进入linux系统终端
vi /etc/docker/daemon.json
内容如下:
{
"registry-mirrors":["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}
2、安装docker-compose
sudo apt update
sudo apt install docker-compose
3、配置docker-compose以启动nexus容器
查看是否有/data目录,如果没有执行脚本
sudo mkdir /data
建一个放置docker-compose配置文件的目录。我用的是/usr/nexus
sudo mkdir /usr/nexus
增加docker-compose.yml文件并填入内容
sudo vi /usr/nexus/ docker-compose.yml
内容如下:
version: "3.3"
services:
nexus:
image: sonatype/nexus3
container_name: nexus3
restart: always
user: root
privileged: true
environment:
- TZ=Asia/Shanghai
ports:
- 8081:8081
volumes:
- ./data:/nexus-data
其中各项配置说明:
docker 镜像 :image (sonatype/nexus3)
docker容器名:container_name (nexus3)。
端口映射:ports (8081:8081)
挂载卷:volumes(本地 ./data 到容器 /nexus-data)
docker容器用户名:user(root)
授权docker:privileged(true)
4、运行docker-compose启动sonatype nexus容器
sudo docker-compose up -d
查看docker容器
sudo docker ps
5、登录nexus的应用页面
访问nexus:http://gitlab.rz.com:8081 我这个域名是之前安装gitlab配置的,当前linux环境是和gitlab共用的,没做通用性修改(懒了),参见:随意的蜗牛:gitlab安装:在docker中安装gitlab
首次登录,登录框显示如下:
按照提示进入docker容器查找admin的密码
sudo docker exec -it nexus3 bash
cat /nexus-data/admin.password
登录后进入配置向导
修改admin密码
6、创建仓库(测试deploy用)
参照下面的方法创建两个仓库mysnapshot和myrelease
7、新建maven项目(测试部署,此例用的是eclipse)
修改maven的settins.xml文件
修改eclipse中的setting文件设置
创建maven测试项目
修改项目的pom文件
打包部署。运行Maven Build…
查看部署结果
PS:安装过程中遇到的问题
在使用docker-compose启动容器的过程中,容器的状态一直是Restarting状态,通过下面查找日志,发现是权限的问题,在docker-compose.yml文件中增加了privileged和user参数解决了。错误原因是我的linux用户名是ljj,而容器挂载的data目录是root用户,导致容器启动过程中在宿主机的data目录操作没有权限。
查看日志
sudo docker ps 找到容器id
sudo docker logs 95ee2ad0dd68
评论区