使用docker搭建持续集成(CI)环境

1 篇文章 0 订阅

                                使用docker搭建持续集成环境

本文主要介绍如何在docker中搭建持续集成(CI)环境,按照文中的步骤,可以完成使用jenkins打包项目并上传到nexus上。

环境要求

  • mac(我使用的环境)/linux/ubuntu
  • 已经安装了docker以及创建了swarm集群

1.GITLAB安装

如果本地没有对应的gitlab镜像可以到docker hub 上去拉取。拉取完成之后tag成自己想要的名称以及版本(要跟stack文件里面的镜像一致)。

启动命令:docker stack deploy -c 0-gitlab.yml git

stack启动文件内容如下:

version: "3"
services: 
 gitlab: 
   image: registry:5000/falcon/gitlab-ce:R1.1.0
   environment: 
     # external_url 设置通过HTTP访问的路径
     # gitlab_rails['gitlab_shell_ssh_port']设置通过SSH访问项目的端口
     GITLAB_OMNIBUS_CONFIG: |
       external_url 'http://gitlab:8000'
       gitlab_rails['gitlab_shell_ssh_port'] = 8022
   hostname: gitlab 
   ports:
     - "8000:8000"
     - "8022:22"
   networks: 
     - mcsas-network
   # 将gitlab的目录挂载到本机以避免重启容器数据丢失
   volumes:
     - /Users/xuefei/docker/volumes/git/etc:/etc/gitlab
     - /Users/xuefei/docker/volumes/git/opt:/var/opt/gitlab
     - /Users/xuefei/docker/volumes/git/log:/var/log/gitlab
   deploy:
     replicas: 1
     update_config:
       delay: 10s
     restart_policy:
       condition: on-failure
  networks:
     mcsas-network: 
       external: true

1.2 设置root密码以及创建group以及用户

  1. 浏览器中输入http://hostname:8000,进入页面
  2. 设置root密码
  3. 创建group以及jenkins用户

1.3 生成并设置SSH key

1.3.1 SSH-key的创建(步骤以及操作图):

  1. 输入 ssh-keygen -t rsa -C “jenkins@gmail.com” ,按回车键
  2. 输入文件生成的路径,如果不输入则默认为当前目录(~/.ssh)
  3. 输入密码/确认密码(可以为空,我采用的也是空)
  4. 生成完成

1.3.2 设置SSH keys

  1. 用jenkins用户登录gitlab
  2. 点击头像->Profile Settings->SSH Keys
  3. 将id_rsa.pub文件中的内容复制到key下方的文本框中点击保存

2.Nexus安装

启动命令:docker stack deploy -c 1-nexus.yml nexus

stack启动文件内容如下:

version: "3"
services: 
  nexus: 
    image: registry:5000/sonatype/nexus3
    hostname: nexus
    ports:
      - "8081:8081"
    networks: 
      - mcsas-network
    volumes:
      - /Users/xuefei/docker/volumes/nexus/data/:/nexus-data
    deploy:
      replicas: 1
      update_config:
        delay: 10s
      restart_policy:
        condition: on-failure
networks:
  mcsas-network: 
    external: true

在nexus启动之后,浏览器中输入http://hostname:8081,登录之后,可以看到页面首页如下:

2.1创建阿里云代理仓库以及自己项目的仓库

这里创建阿里云代理仓库是为了解决包的下载速度问题,具体的需要哪些代理仓库还是要根据实际的开发环境决定。

3.jenkins安装

启动命令:docker stack deploy -c 2-jenkins.yml jenkins

version: "3"
services: 
  jenkins: 
    image: jenkinsci/blueocean
    hostname: jenkins 
    ports:
      - "50000:50000"
      - "8080:8080"
    networks: 
      - mcsas-network
    volumes:
      - /Users/xuefei/docker/volumes/jenkins:/var/jenkins_home
      # 将宿主机上的docker挂载到jenkins镜像里
      - /var/run/docker.sock:/var/run/docker.sock
      - /Users/xuefei/apache-maven-3.5.4:/var/local/apache-maven-3.5.4
    deploy:
      replicas: 1
      update_config:
        delay: 10s
      restart_policy:
        condition: on-failure
networks:
  mcsas-network: 
    external: true

在浏览器中输入http://hostname:8080,按照界面操作完成jenkins的配置以及插件的安装

3.1 全局变量配置

进入系统管理界面,点击系统设置,找到全局属性,勾选环境变量复选框,配置git以及maven的配置

settings.xml文件需要放在 /Users/xuefei/docker/volumes/jenkins/(挂载目录)/maven_settings下,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
   <!--  本地仓库的地址    --> 
  <servers>
     <server>
	    <id>jpractice-snapshots</id>
	    <username>admin</username>
	    <password>admin123</password>
     </server>
  </servers>
   
  <mirrors>
    	<mirror>
	        <id>public</id>  
	        <name>internal nexus repository</name>  
	        <url>http://nexus:8081/repository/maven-public/</url>
	        <mirrorOf>central</mirrorOf>  
    	</mirror>
  </mirrors>

  <profiles>
    <profile>
       <id>jdk-1.8</id>
       <activation>
          <activeByDefault>true</activeByDefault>
              <jdk>1.8</jdk>
          </activation>
          <properties> 
              <maven.compiler.source>1.8</maven.compiler.source> 
              <maven.compiler.target>1.8</maven.compiler.target> 
              <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> 
          </properties>
    </profile>
    <profile>
       <id>snapshots</id>
       <activation>
          <activeByDefault>true</activeByDefault>
       </activation>
	  <repositories>
            <repository>
              <id>public</id>
            	 <url>http://nexus:8081/repository/maven-public/</url>
               	   <releases>
               	      <enabled>true</enabled>
            	    </releases>
               	    <snapshots>
                      <enabled>true</enabled>
                    </snapshots>
       		 </repository>
 	      </repositories>
	</profile>
  </profiles>
</settings>

3.2 全局工具配置

点击“jenkins”(左上角),系统管理,全局工具配置,进入全局工具配置页面。主要配置的有

Maven的默认配置

JDK配置

Maven的配置

3.1 新建任务

点击页面上的“新建任务”按钮,在新建任务页面中输入项目名称,并选择“构建一个maven项目”,点击“确认”按钮

在配置页面中输入相关信息:

在General中输入描述信息

在源码管理模块,选择git,配置Repository URL

点击上图中的add按钮进入Credentials配置页面,进行如下操作

  1. 在弹出页面中类型选择“SSH Username with private key”
  2. 在Username中输入自定义的名字,例如“jenkins”
  3. 选中“Enter directly”
  4. 将之前生成的rsa的private key(/Users/xuefei/.ssh/id_rsa)填入其中
  5. Passphrase字段因为生成rsa时没有输入密码,所以这里不用填写
  6. ID、描述可以不填写
  7. 点击“添加”按钮完成操纵

在bulid模块填入maven的操作

 

 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是从0到1使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的步骤: 1. 安装 DockerDocker Compose 首先,需要在服务器上安装 DockerDocker Compose。Docker是一个虚拟化平台,可以通过容器化技术快速部署应用程序。Docker Compose是一个工具,可以定义和运行多个 Docker 容器的应用。 2. 创建 Git 仓库 创建一个 Git 仓库来管理应用程序的源代码。可以使用 GitLab、GitHub 或 Bitbucket 等 Git 托管服务。 3. 编写 Pytest 测试 编写 Pytest 测试来测试应用程序的功能。Pytest 是一个 Python 测试框架,可以用于测试 Python 应用程序的各个方面,包括单元测试、集成测试和端到端测试。 4. 安装 Jenkins 安装 Jenkins 作为持续集成和持续交付的工具。Jenkins 是一个开源 CI/CD 工具,可以自动化构建、测试和部署应用程序。 5. 配置 Jenkins 配置 Jenkins 以连接 Git 仓库和 Docker 守护进程。在 Jenkins 中,需要设置 Git 仓库的地址和凭据,以便 Jenkins 可以拉取代码并构建 Docker 镜像。 6. 构建 Docker 镜像 使用 Dockerfile 构建 Docker 镜像。Dockerfile 是一个包含构建 Docker 镜像所需指令的文本文件。 7. 运行 Pytest 测试 使用 Docker Compose 运行 Pytest 测试。Docker Compose 可以定义和运行多个 Docker 容器的应用。在这里,需要定义一个包含测试和应用程序容器的 Docker Compose 文件。 8. 生成 Allure 报告 使用 Allure 生成测试报告。Allure 是一个测试报告框架,可以生成漂亮且易于阅读的测试报告。 以上就是使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架的基本步骤。当然,具体实现还需要根据你的应用程序进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值