docker+gitlab+jenkins+sonarqube实现代码持续集成
1、docker安装 1)、删除老旧版本docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2)、安装工具包并设置存储库
安装工具包
yum install -y yum-utils
设置存储库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3)、安装docker引擎
yum install docker-ce docker-ce-cli containerd.io
2、docker使用 【docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。】1)、docker基本命令
启动docker
systemctl start docker
停止docker
systemctl stop docker
重启docker
systemctl restart docker
2)、设置docker开机启动
systemctl enable docker
3)、设置阿里云镜像仓库
阿里云镜像访问地址
文章图片
镜像设置执行代码:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["设置自己的镜像服务器地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3、docker安装gitlab 1)、访问docker hub搜索gitlabdocker镜像
gitlab镜像地址
2)、本地安装gitlab镜像
2.1)、拉取gitlab镜像
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本(根据自己选择版本填写)
$ docker pull gitlab/gitlab-ce
2.2)、运行gitlab镜像
$ docker run -d \
-p 8443:443 \
-p 8090:8090\
-p 8022:22 \
--restart always \
--name gitlab \
-v /usr/local/gitlab/etc:/etc/gitlab \
-v /usr/local/gitlab/log:/var/log/gitlab \
-v /usr/local/gitlab/data:/var/opt/gitlab \
--privileged=true gitlab/gitlab-ce
# -d:后台运行
# -p:将容器内部端口向外映射(-p 8443:443 把容器中应用的端口443映射为外部的8443端口,-p 8090:8090把容器中应用的端口8090映射为外部的8090端口,-p 8022:22把容器中应用的端口22映射为外部的8022端口)
# --name:命名容器名称
#--restart always:代表服务器重启镜像自动启动
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录实时日志查看
docker logs -f --tail=10 gitlab
-f : 查看实时日志
--tail=10 : 查看最后的10条日志。
gitlab: 容器名称
2.3)、配置gitlab访问地址
#进入容器
docker exec -it gitlab bash
#修改gitlab.rb文件
cd /etc/gitlab
vi gitlab.rb
#修改ip和端口
使用/来查找关键字
#在gitlab创建项目时候http地址的host(加端口号)
external_url 'http://xx.xx.xx.xx'
#在gitlab创建项目时候ssh地址的host
gitlab_rails['gitlab_ssh_host'] = 'xx.xx.xx.xx'(不用添加端口)
# docker run 的时候我们把22端口映射为外部的8022了,这里修改下
gitlab_rails['gitlab_shell_ssh_port'] = 8022
# gitlab应用配置
gitlab-ctl reconfigure
# 修改port
# 文件路径地址
cd /opt/gitlab/embedded/service/gitlab-rails/config
vi gitlab.yml
# 使用/查找port关键字
# 修改默认端口为8090端口
# 容器内重启gitlab
# 命令:gitlab-ctl restart
# 退出容器
# 命令:exit
# 访问地址:http://192.168.153.128:8090/users/sign_in
2.4)、如果进入gitlab没有初始化密码,这样重置密码
# 重置密码命令
#进入容器
docker exec -it gitlab bash
# 输入命令
gitlab-rails console -e productionuser=User.where(id:1).first
user.password='1qaz.2wsx'
user.save!
exit
exit
文章图片
4、docker安装jenkins docker hub搜索jenkins
拉取jenkins镜像
docker pull jenkins/jenkins
jenkins官网查看安装命令
docker run \
-u root \
-d \
--restart always \
--name jenkins \
-p 9000:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--privileged=true jenkins/jenkins
jenkins访问地址:
http://192.168.153.128:9000/
进入jenkins容器
docker exec -it jenkins bash
查看首次登陆密码
cat /var/jenkins_home/secrets/initialAdminPassword
文章图片
5、docker安装sonarqube
1)、安装sonarqube必选先安装数据库,sonarqube支持三种数据库(sqlserver,Oracle,postgres),此处选用postgres
1.1)、docker安装postgres
拉取postgres数据库镜像文件
docker pull postgres
使用docker运行postgres数据库
docker run --name postgres -d -p 5432:5432 \
-v /home/sonar/postgres/postgresql:/var/lib/postgresql \
-v /home/sonar/postgres/data:/var/lib/postgresql/data \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=sonar \
-e POSTGRES_PASSWORD=sonar \
-e POSTGRES_DB=sonar \
-e TZ=Asia/Shanghai \
--restart always \
--privileged=true \
postgres-p 5432:5432:将容器 5432 映射到宿主机端口 5432
-v /home/sonar/postgres/postgresql:/var/lib/postgresql:将容器下的 /var/lib/postgresql 挂载到宿主机 /home/sonar/postgres/postgresql
-v /etc/localtime:/etc/localtime:ro:设置容器与宿主机时间一致
--e POSTGRES_USER=sonar:设置数据库用户名
-e POSTGRES_PASSWORD=sonar:设置数据库密码
-e POSTGRES_DB=sonar:新建db
-e TZ=Asia/Shanghai:设置时区
--restart always:容器退出时总是重启
--privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法
docker hub搜索sonarqube
使用命令拉取sonarqube镜像:
docker pull sonarqube
docker 启动sonarqubedocker run \
-d \
--name sonarqube \
-p 9090:9000 \
--link postgres \
-e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD=sonar \
--privileged=true \
--restart always \
-v sonarqube_conf:/opt/sonarqube/conf \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_data:/opt/sonarqube/data \
sonarqube--name sonarqube:镜像名称
-p 9090:9000:将容器 9000映射到宿主机端口 9090
-v sonarqube_conf:/opt/sonarqube/conf \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_data:/opt/sonarqube/data \:将容器下的目录挂载到宿主机
--link postgres:连接到容器
-e SONARQUBE_JDBC_URL=jdbc:postgresql://postgres:5432/sonar:设置连接驱动地址
-e SONARQUBE_JDBC_USERNAME=sonar:设置数据库用户名
-e SONARQUBE_JDBC_PASSWORD=sonar:设置数据库密码
--restart always:容器退出时总是重启
--privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法
文章图片
推荐阅读
- 个人心得|Windows11下安装Docker
- docker|群晖DailyCheckIn设置docker定时执行签到命令
- docker青龙|openwrt 软路由 docker安装青龙面板 + Ninja(进阶版)
- linux|CentOS下安装docker的两种方式
- docker|Windows11上安装docker
- gitlab|记一次使用Docker安装gitlab
- docker|docker安装gitlab 教程详解
- docker|Docker自学笔记2-Docker在win11的Ubuntu安装踩坑之路
- Spring|Docker安装gitlab及修改gitlab密码