docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。

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)、设置阿里云镜像仓库
阿里云镜像访问地址
docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。
文章图片

镜像设置执行代码: 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

docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。
文章图片

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

docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。
文章图片

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的解决办法

docker|docker+gitlab+jenkins+sonarqube实现代码持续集成持续更新中。。。。。。
文章图片

    推荐阅读