文章目录
前言
docker下安装 gitlab,nexus3
一、gitlab
GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
1.GitLab ---- docker安装脚本
#!/bin/bash
# gitlab 搭建脚本
#搜索 gitlab
docker search gitlab-ce-zh
# 汉化社区版
docker pull twang2218/gitlab-ce-zh:11.1.4
#创建gitlab映射文件夹
mkdir -p /home/docker/gitlab/config /home/docker/gitlab/logs /home/docker/gitlab/data
#自定义网络,从而让容器运行于独立的网络中,区别于默认网桥。
docker network create gitlab-net
#启动容器
docker run -d \
--restart=always \
--name gitlab-kiko \
--privileged=true \
--network gitlab-net \
-p 20443:443 \
-p 20022:22 \
-p 20080:80 \
-p 28080:8080 \
-v /volume1/docker/gitlab/config:/etc/gitlab \
-v /volume1/docker/gitlab/logs:/var/log/gitlab \
-v /volume1/docker/gitlab/data:/var/opt/gitlab \
twang2218/gitlab-ce-zh:latest
2.gitlab常用命令
重新加载配置:gitlab-ctl reconfigure
重启服务:gitlab-ctl restart
启动服务:gitlab-ctl start
停止服务:gitlab-ctl stop
日志路径: /var/log/gitlab
查看所有日志:gitlab-ctl tail
查看nginx日志:gitlab-ctl tail nginx/gitlab_access.log
查看指数据库日志:gitlab-ctl tail postgresql
3.Gitlab 生成 SSH Keys
1. 打开 Git Bash
2. 输入生成对应邮箱的ssh keys ==> ssh-keygen -t rsa -C "kikock@qq.com"
3. id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
4. 登陆GitLab,打开“settings”,“SSH Keys”页面
5. 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
4.Gitlab 配置文件
配置文件下载地址
配置文件变动内容:
external_url 当前服务器ip地址
增加邮箱配置
添加ip白名单
优化启动,实现2g内存可运行服务
二、nexus3
Nexus3是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问
1.nexus3---- docker安装脚本
#!/bin/bash
# nexus3 搭建脚本
#搜索 nexus3
docker search nexus3
# 官方镜像
docker pull sonatype/nexus3
#创建nexus3映射文件夹
mkdir -p /usr/local/docker/nexus3/data
# 增加权限
chown -R 200 /usr/local/docker/nexus3/data
#自定义网络,从而让容器运行于独立的网络中,区别于默认网桥。
docker network create nexus-net
#默认网络模式
#28082端口是用于host镜像仓库的服务端口
#28083端口用户group镜像仓库的服务端口
#28081 端口是nexus的服务端口
##参数说明 -d 后台运行容器 -p 指定映射端口号 -v 映射目录
# -hostname 自己安装gitlab的服务机的IP地址
docker run -d \
--restart=always \
--name nexus3 \
--network nexus-net \
--privileged=true \
-p 28081:8081 \
-p 28082:8082 \
-p 28083:8083 \
-v /usr/local/docker/nexus3/data:/nexus-data \
sonatype/nexus3
2.nexus3----仓库创建
Group:这是一个仓库集合,内部设置了多个仓库,自由配置引用jar包顺序。
Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
Proxy:代理类型,从远程中央仓库中寻找数据的仓库,可配置阿里云maven仓库等
先创建Proxy,远程中央仓库(一般用阿里仓库)

再创建Hosted,本地存储。像官方仓库一样提供本地私库功能

创建group仓库,一般配置本地仓库在前,代理阿里仓库在后面

3.nexus3----maven配置+本地项目pom.xml
maven配置文件–增加参数配置
<servers>
<server>
<id>nexus-kikock</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
本地项目的pom.xml中加上以下配置
<!--maven 私有库配置-->
<distributionManagement>
<repository>
<!--这里的id要和maven中的settings.xml的id一致,这样才能识别依赖做坐标-->
<id>nexus-kikock</id>
<name>kikock host nexus</name>
<!--配置jar包上传地址-->
<url>http://192.168.64.88:28081/repository/kikock-hosted/</url>
</repository>
</distributionManagement>
<!--本地引用仓库配置-->
<repositories>
<repository>
<!--这里的id要和maven中的settings.xml的id一致,这样才能识别依赖做坐标-->
<id>nexus-kikock</id>
<name>Nexus Repository</name>
<!--配置jar包下载仓库,一般配置group类型仓库-->
<url>http://192.168.64.88:28081/repository/kikock-group/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
maven执行 deploy 命令上传jar包到私有库,引用jar包(略)
4.nexus3----gradle配置
/配置下载Maven仓库
repositories {
// mavenLocal() 按以下顺序去查找本地的Maven仓库:
// USER_HOME/.m2/settings.xml -> M2_HOME/conf/settings.xml -> USER_HOME/.m2/repository
mavenLocal()
//配置jar包下载仓库,一般配置group类型仓库
maven { url 'http://192.168.64.88:28081/repository/kikock-group/'}
//mavenCentral() Sonatype公司提供的中央库 : http://central.maven.org/maven2
//jcenter() JFrog公司提供的仓库 : http://central.maven.org/maven2
//google() Google公司提供的仓库 : https://maven.google.com
//一般替换为镜像仓库,本地仓库已经存在镜像仓库也可以不用
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
/上传Maven仓库
//打包源代码
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
artifacts {
archives sourcesJar
}
//如果希望gradle install,安装到.m2本地仓库,参考下面的内容
install {
repositories.mavenInstaller {
pom.version = "版本号"
pom.artifactId = "jar包id"
pom.groupId = "jar包group"
}
}
//上传到nexus
uploadArchives {
repositories {
mavenDeployer {
//配置jar包上传地址
repository(url: 'http://192.168.64.88:28081/repository/kikock-hosted/') {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.version = "版本号"
pom.artifactId = "jar包id"
pom.groupId = "jar包group"
}
}
return 'Success'
}
浙公网安备 33010602011771号