Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)

博主介绍:Java领域优质创作者,博客之星城市赛道TOP20专注于前端流行技术框架、Java后端技术领域、项目实战运维以及GIS地理信息领域。

🍅文末获取源码下载地址🍅

👇🏻 精彩专栏推荐订阅👇🏻 欢迎点赞收藏评论拍砖........

【Docker Swarm总结】《容器技术 Docker+K8S专栏》

【uniapp+uinicloud多用户社区博客实战项目】《完整开发文档-从零到完整项目》

【Springcloud Alibaba微服务分布式架构 | Spring Cloud】《系列教程-更新完毕》

【SpringSecurity-从入门到精通】《学习完整笔记-附(完整demo源码)》

【从零开始Vue项目中使用MapboxGL开发三维地图教程】《系列教程-不定时更新》

【Vue.js学习详细课程系列】《共32节专栏收录内容》

感兴趣的可以先收藏起来相关问题都可以给我留言咨询,希望帮助更多的人。



12、CI/CD 与 DevOps

12.1 CI/CD 简介

CI,Continuous Integration,持续集成。即将持续不断更新的代码经构建、测试后也持

续不断的集成到项目主干分支。

CD,包含两层含义:Continuous Delivery,持续交付,和 Continuous Deployment,持续

部署。

  • 持续交付:是持续集成的后续步骤,持续频繁地将软件的新版本交付到类生产环境预发,

即交付给测试、产品部门进行集成测试、API 测试等验收,确保交付的产物可直接部署。

  • 持续部署:是持续交付的后续步骤,将持续交付的产物部署到生产环境。

12.2 DevOps 简介

百度百科中是这样介绍 DevOps 的:

DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于

促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整

合。

它是一种重视“软件开发人员(Dev)”和“IT 运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

DevOps 是一种思想,是一种管理模式,是一种执行规范与标准。

12.3 CI/CD 与 DevOps 关系

CI/CD 是目标,DevOps 为 CI/CD 目标的实现提供了前提与保障。

13、 系统架构图

最终要搭建出如下图所示架构的系统。

14、Idea 中 Git 配置

14.1 Git 简介

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

13.2 Git 的工作流程

13.3 Git 的下载与安装

从 Git 的官网下载 Git。其官网为:https://git-scm.com 。根据安装向导“下一步”式安装即可。

13.4 Idea 中配置 Git

15、GitLab 安装与配置

15.1 简介

GitLab 是一个源码托管开源工具,其使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。GitLab 由乌克兰程序员使用 Ruby 语言开发,后来一部分使用 Go 语言重写。生产中通常使用 GitLab 搭建私有源码托管平台。

15.2 GitLab 的安装

(1) 主机要求

这里要使用 docker 方式来安装 GitLab,所以需要一台安装有 docker 及 docker-compose的主机,且该主机内存至少 4G。

(2) 拉取镜像

这里使用由 gitlab 官网发布的社区版镜像 gitlab/gitlab-ce:latest。该镜像最好是先拉取到本地后再使用,因为该镜像比较大。

具体安装详情参照我的博文:

(3) 定义 compose.yml

由于启动 GitLab 容器时需要设置的内容较多,为了方便,这里使用 docker compose 方式启动。

在任意目录 mkdir 一个子目录,例如在/usr/local 下新建一个 glab 目录。在该目录中新建compose.yml 文件。文件内容如下:

services:
  gitlab:
    image: gitlab/gitlab-ce
    container_name: gitlab
    restart: always
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.162.121:9999'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - 9999:9999
      - 2222:2222
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab
 

编写完compose.yml文件后,使用以下命令检查是否有错误:

docker-compose config

出现配置信息,就说明compose文件没问题!!!

(4) 启动 gitLab

使用 docker-compose up -d 命令启动容器服务。不过,其启动过程时间较长些。

docker-compose up -d

在等待过程中,可以查看其启动日志。

docker-compose logs -f

可以看到如下的大量日志。

13.3 GitLab 的密码配置

(1) 浏览器访问

在浏览器中直接键入 http://192.168.162.121:9999 即可打开登录页面。不过,这个过程一般需要的时间较长。这里需要登录的用户名与密码。默认的用户名为 root,而默认密码需要进入容器中查看。

(2) 查看登录密码

gitLab 平台的登录用户名默认为 root,初始密码在容器中/etc/gitlab/initial_root_password文件中。所以需要首先进入容器,然后查看该文件内容。然后再将 root 用户名与复制来的密码填写到登录页面的相应位置即可登录成功。

cat /usr/local/gitlab/config/initial_root_password

(3) 修改密码

登录后,首先要修改初始密码。为了方便,这里将新密码设置为 自己的密码。

16、SonarQube 安装与配置

16.1 简介

SonarQube 是一个开源的代码扫描与分析平台,用来持续扫描、分析和评测项目源代码的质量与安全。 通过 SonarQube 可以检测项目中代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等多个维度,并通过 SonarQube web UI 展示出来。SonarQube 支持 30+种编程语言代码的扫描与分析,并能够方便的与代码 IDE、CI/CD 平台完美集成。

SonarQube 的官网地址:https://www.sonarsource.com/

16.2 主机要求

这里要使用docker方式来安装,所以需要一台安装有docker及docker-compose的主机。

16.3 安装与配置

(1) 下载两个镜像

由于 SonarQube 需要 Postgres 数据库的支持,所以安装 SonarQube 之前需要先安装Postgres 数据库。所以需要下载 Postgres 与 SonarQube 两个镜像。

docker pull sonarqube:10.3-community
 
docker pull postgres:latest

(2) 定义 compose.yml

由于需要启动两个容器,所以这里使用 docker-compose 方式。

在/usr/local 下 mkdir 一个 sonar 目录,在其中定义 compose.yml 文件。

sysctl -w vm.max_map_count=524288
 
sysctl -w fs.file-max=131072
 
ulimit -n 131072
 
ulimit -u 8192
 
 
mkdir -p  /data/sonarqube/postgres/postgresql
mkdir -p  /data/sonarqube/postgres/data
mkdir -p  /data/sonarqube/sonarqube/extensions
mkdir -p  /data/sonarqube/sonarqube/logs
mkdir -p  /data/sonarqube/sonarqube/data
mkdir -p  /data/sonarqube/sonarqube/conf
 
 
 
vi compose.yml

services:
  postgres:
    image: postgres
    restart: always
    container_name: postgres
    ports:
      - 5432:5432
    volumes:
      - /data/sonarqube/postgres/postgresql:/var/lib/postgresql
      - /data/sonarqube/postgres/data:/var/lib/postgresql/data
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
 
  sonar:
    image: sonarqube:8.9.6-community
    container_name: sonar
    depends_on:
      - postgres
    volumes:
      - /data/sonarqube/sonarqube/extensions:/opt/sonarqube/extensions
      - /data/sonarqube/sonarqube/logs:/opt/sonarqube/logs
      - /data/sonarqube/sonarqube/data:/opt/sonarqube/data
      - /data/sonarqube/sonarqube/conf:/opt/sonarqube/conf
    ports:
      - 9000:9000
    command:
      - -Dsonar.ce.javaOpts=-Xmx2048m
      - -Dsonar.web.javaOpts=-Xmx2048m
   #   - -Dsonar.web.context=/sonar
    environment:
      SONARQUBE_JDBC_USERNAME: sonar
      SONARQUBE_JDBC_PASSWORD: sonar
      SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar

(3) 修改虚拟内存大小

在/etc/sysctl.conf 文件中指定 vm.max_map_count 虚拟内存大小。

修改保存后再运行 sysctl –p 命令使 Linux 内核加载文件中的配置。

(4) 启动postgres和SonarQube两个容器服务

通过 docker-compose up –d 命令启动容器,并 docker ps 查看是否启动成功。

docker-compose up -d

(5) 登录 SonarQube

在浏览器键入 SonarQube 服务器的 IP 与端口号 9000,即可打开登录页面。默认用户名与密码都是 admin。这里登录sonarqube网页端时间有点长!!!!

Log in 后即可跳转到更新密码页面。这里更新密码为自己的密码。

Update 后即可看到首页。

(6) 安装汉化插件

在 Maketplace 中键入关键字 Chinese 后即可找到要安装的汉化插件,点击 I understand the risk(我了解风险)后即可看到 Install 按钮,点击安装。

安装成功后,在页面上部就可看到 Restart Server 的提示,让重启 SonarQube。

重启后,页面会自动跳转到具有中文的登录页面。登录进入后,页面已经变为了中文。

17、harbor 安装与配置

17.1 Harbor 安装系统要求

Harbor 要安装的主机需要满足硬件与软件上的要求。

(1) 硬件要求

(2) 软件要求

17.2 安装 Harbor

(1) 下载安装包

在官网复制 Latest 最新版的离线安装包的下载链接地址,在 Linux 系统中通过 wget 命令下载,将其下载到某目录中。

(2) 解压安装包

将下载好的包解压到某目录中。解压后其就是一个独立的目录 harbor。

tar zxvf harbor-offline-installer-v2.8.2.tgz -C /opt/apps/

(3) 修改 harbor.yml

复制一份 harbor 解压包中的 harbor.yml.tmpl,并重命名为 harbor.yml。

(4) 运行 prepare

运行 harbor 解压目录中的 prepare 命令。该命令会先拉取 prepare 镜像,然后再生成很多的其后期要用到的配置文件。

(5) 运行 install.sh

运行 harbor 解压目录中的 install.sh 命令,其会自动完成五步的安装过程,并在最终启动很多的容器。这些容器本质上就是通过 docker-compose 进行编排管理的。

(6) 新建仓库

在浏览器地址栏中输入 http://192.168.162.124 即可看到登录页面,在其中输入用户名

admin,密码为自己设置的密码,即可登录。

登录后点击“新建项目”,新建一个镜像仓库。

18、目标服务器安装与配置

18.1 docker 引擎

由于目标服务器需要从镜像中心 Harbor 中 docker pull 镜像,然后使用 docker run 来运

行容器,所以目标服务器中需要安装 Docker 引擎。

18.2 docker-compose

由于目标服务器需要通过 docker-compose 运行 compose.yml 文件来启动容器,所以目

标服务器中需要安装 docker-compose。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
2月前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
56 2
|
1月前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
66 2
|
24天前
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
40 2
|
1月前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
1月前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
49 4
|
1月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
1月前
|
jenkins Java 持续交付
软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分
随着软件开发自动化程度的不断提高,持续集成(CI)和持续部署(CD)成为现代软件开发的重要组成部分。本文以电商公司为例,介绍如何使用 Jenkins 自动发布 Java 代码,包括安装配置、构建脚本编写及自动化部署等步骤,帮助团队实现高效稳定的软件交付。
39 3
|
1月前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
77 4
|
2月前
|
运维 监控 Devops
DevOps实践:持续集成与部署的自动化之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为提升效率、加速交付和确保质量的关键策略。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来自动化开发流程,从而优化运维工作。我们将从基础概念入手,逐步过渡到实际操作,包括工具选择、流程设计以及监控和反馈机制的建立。最终,我们不仅会展示如何实现这一自动化流程,还会讨论如何克服常见的挑战,以确保成功实施。
73 9
|
1月前
|
运维 Devops jenkins
DevOps实践之持续集成与持续交付
【10月更文挑战第32天】在软件开发的快节奏世界中,DevOps已经成为提升效率和质量的关键策略。通过将开发(Development)和运维(Operations)紧密结合,DevOps促进了更快速的软件发布和更高的可靠性。本文将深入探讨DevOps的核心组成部分——持续集成(CI)和持续交付(CD),并展示如何通过实际代码示例实现它们,以帮助团队构建更加高效和稳定的软件发布流程。