一、GitLab的安装
gitlab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
docker search gitlab
docker pull docker.io/gitlab/gitlab-ce
sudo docker run
docker run -d \
-h *.*.*.* \(修改为自己的Ip)
-p 2222:22 \
-p 8888:80 \
-p 8443:443 \
-v /docker/gitlab/config:/etc/gitlab \
-v /docker/gitlab/logs:/var/log/gitlab \
-v /docker/gitlab/data:/var/opt/gitlab \
--restart always \
--name gitlab \
gitlab/gitlab-ce:latest
参数说明:
--detach: 设置容器后台运行
--hostname: 设置容器的 hostname
--publish: 端口转发规则(80:Http 访问端口,443:Https 访问端口,8888:主机的 ssh 访问端口,22:Docker 容器中 ssh 访问端口)
--name:容器名称
--restart always:每次启动容器就重启GitLab
--volume: 共享目录挂载,即 docker 容器内外数据共享(/srv/gitlab/data: 应用程序数据,/srv/gitlab/logs:GitLab 的 log,/srv/gitlab/config:GitLab 的配置文件)
--e:配置 Gitlab 运行的环境变量
安装完成后,可以通过“http://自己的IP:8888”访问到gitlab的主页,如果不行的话,查看一下linux的8888端口是否打开。
第一次登录使用的用户名和密码为 root 和 5iveL!fe。
二、SonarQube的安装
SonarQube能够提供对代码的一整套检查扫描和分析功能,拥有一套服务器端程序,然后再通过客户端或者别的软件的插件的形式完成对各开发环境和软件的支持。对编程语言的支持非常广泛,包括C、C++、Java、Objective C、Python、JavaScript、PHP、C#、Swift、Erlang、Groovy等众多语言。
1、pull镜像(postgres和 sonarqube)
docker pull postgres 拉取数据库
docker pull sonarqube 拉取sonarqube
2、创建并启动容器(容器的名字不能有大写字母)
先启动数据库:
docker run --name postgresql_db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres
再启动sonar(注意配置数据库信息):
docker run --name sq --link postgresql_db -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql_db:5432/sonar -p 9000:9000 -d sonarqube
3、汉化
可以使用直接在镜像中添加插件的方式进行汉化,但是要查询对应的插件版本。本文使用另一种方式,直接在SonarQube的页面上进行汉化(so easy ^_^)
1)登录刚刚安装的SonarQube(admin/admin);
2)页面上找到 Administration > Marketplace ,在搜索框中输入 chinese ,出现一个 Chinese Pack ,点击右侧的 install 按钮;
3)安装成功后,会提示重启 SonarQube 服务器,然后OK;
三、jenkins的安装
jenkins的安装本来是很容易的,但是因为涉及到maven,以及后期打jar包,所以需要对jenkins容器的权限等进行修改。
1、pull镜像,顺便创建一个文件夹用于后续配置
docker pull jenkins(这个版本太老了,建议使用jenkins/jenkins)
mkdir -p /docker/jenkins_home 创建文件夹
chown -R 1000:1000 /docker/jenkins_home 记得修改一下用户组,不然容器会无限重启
2、需要在jenkins里用docker命令,把jar包打成镜像文件,可因为jenkins我们是用docker启动的,这里权限会有问题,docker.sock不让访问,这个方法是从网上查的,亲测可用,供大家参考。
用vi命令创建一个文档Dockerfile,然后里面使用如下脚本
FROM jenkins/jenkins(这里之前pull的是jenkins/jenkins)
LABEL maintainer="****@163.com"
USER root
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins/jenkins" >> /etc/group
USER jenkins
创建镜像。执行:docker build -t "myjenkins" . (注意最后有一个点".",而且要和前面的字符有一个空格)
查看自己刚刚创建的镜像是否存在:docker images;
如果没有问题,给docker.sock赋读写权限:chmod 777 var/run/docker.sock
3、运行jenkins容器。
docker run -d --restart unless-stopped --name jenkins -p 30000:8080 -p 30001:50000 -v /docker/jenkins_home:/var/jenkins_home -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 myjenkins
-v /usr/bin/docker:/usr/bin/docke
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
这三个挂载是解决在jenkins上可以使用docker命令
4、寻找密钥。使用80000端口登录jenkins后,需要输入秘钥。
因为我们已经将存储秘钥的文件放到了docker外面,所以秘钥文本是这个“/docker/jenkins_home/secrets/initialAdminPassword”
如果没有将目录挂载出来,使用下面的方法寻找秘钥:
先进入/var/lib/docker/volumes;
然后使用find命令查找:find -name initialAdminPassword,找到文档后,复制出来就行了。
5、最后就是安装插件,设置用户名。如果熟悉jenkins的同学,可以选择自定义安装,不熟悉的就直接选择推荐设置进行安装就可以了。