Docker学习笔记(九):Docker +Jenkins +Github持续集成

本次配置时,jenkins需要配置在外网可访问的服务器上,因为在git push内容到github时,触发Webhooks并推送到jenkins服务器上。

 

1. 配置Github(通过秘钥登录)

生成秘钥:

ssh-keygen -t rsa -b 4096 -C "1248741476@qq.com"

在github设置密钥(公钥):

将公钥 id_rsa.pub里的内容填入如下 Key中,Title可任意取。

检查是否key值配置成功,使用key值的方式进行clone,如下:

 

设置带权限的access_token

生成token的秘钥

 

2. 配置Jenkins

Jenkins安装参考博客

安装git、github插件(系统管理 --> 插件管理)

配置系统环境(系统管理 --> 系统设置)

添加token密钥:

其中下面的 Secret中的值为配置 Personal access tokens生成的 token秘钥。

下面 secret text为上面的描述, Test connection用来测试验证是否通过。

 

3. Job配置

点击Add 添加验证。

root为我服务器使用的用户名,大家可以根据自己的实际情况配置,Private Key 可以如下获取。记住需要在github上传服务的公钥。

继续配置。

 

4. 容器配置

4.1 更改主机系统配置(jenkins服务器上配置)

常见错误一:sudo: sorry, you must have a tty to run sudo

解决方法:#Default requrrity(文件路径:/etc/sudoers,如果文件中没有这个就不用理会)

 

常见错误二:sudo: no tty present and no askpass program specified

解决方法:jenkins ALL = NOPASSWD: /usr/bin/docker,/usr/bin/chown,/usr/bin/mv

 

4.2 挂载目录

# 存储路径
SAVE_PATH=/tmp/job_files

# 保存的文件名称
FILE_NAME=`date "+%Y%m%d"`_${BUILD_NUMBER}.jar

# 进入工作空间
echo "workspace==========${WORKSPACE}"

# mvn编译
# cd ${WORKSPACE}
# mvn clean install
# -f为指定pom文件
# --rm在编译完后将容器删除,节省空间
sudo docker run --rm --name my-maven-project -v ${WORKSPACE}:${WORKSPACE} maven:3.5-jdk-7 mvn clean install -f ${WORKSPACE}/pom.xml

# 保存文件
sudo mv target/*.jar $SAVE_PATH/$FILE_NAME

# 执行jar包并且验证
java -cp $SAVE_PATH/$FILE_NAME com.mycompany.helloworld.App

 

4.3 push提交触发Webhooks

触发Webhooks后推送到Jenkins服务器进行构建,运行成功。

注意:因为容器每次执行后都会销毁,没有设置maven的缓冲目录,这样导致每次容器运行时都需要实时下载依赖,速度会慢一些,为此可以将本地的maven仓库与容器中的maven仓库绑定起来,这样会大大加快容器运行的速度。

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建项目自动化框架需要进行以下步骤: 1. 安装 DockerJenkins Docker 是一个容器化引擎,可以快速构建、部署和运行应用程序。Jenkins 是一个流行的持续集成和持续交付工具,可以帮助你自动化构建、测试和部署应用程序。 2. 配置 Git 仓库 Git 是一个开源的分布式版本控制系统,可以帮助你管理代码版本,与团队协作。 3. 编写 Pytest 测试用例 Pytest 是一个流行的 Python 单元测试框架,可以帮助你编写高质量的测试用例。 4. 集成 Pytest 和 Allure 报告 Allure 是一个开源的测试报告框架,可以帮助你生成漂亮的测试报告,方便测试结果的分析和共享。 接下来是具体步骤: 1. 安装 DockerJenkins 在安装 Docker 之前,需要先安装 Docker 的依赖项: ```bash $ sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release ``` 然后添加 Docker 的 GPG 密钥: ```bash $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg ``` 接下来添加 Docker 的 apt 源: ```bash $ echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 然后更新 apt 缓存并安装 Docker: ```bash $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io ``` 安装完成后,可以通过以下命令验证 Docker 是否安装成功: ```bash $ sudo docker run hello-world ``` 接下来安装 Jenkins,可以使用以下命令: ```bash $ sudo apt-get update $ sudo apt-get install openjdk-8-jdk $ wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - $ sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' $ sudo apt-get update $ sudo apt-get install jenkins ``` 安装完成后,可以通过以下命令验证 Jenkins 是否安装成功: ```bash $ sudo systemctl status jenkins ``` 2. 配置 Git 仓库 首先需要在 Git 上创建一个项目,然后将项目克隆到本地: ```bash $ git clone https://github.com/your_username/your_project.git ``` 然后在 Jenkins 上配置 Git 仓库: 1. 打开 Jenkins 管理页面(默认地址为 http://localhost:8080); 2. 点击“New Item”创建一个新的项目; 3. 输入项目名称,并选择“Freestyle project”; 4. 在“Source Code Management”中选择“Git”; 5. 输入 Git 仓库的 URL 和凭据信息; 6. 配置其他选项,如构建触发器、构建环境等。 3. 编写 Pytest 测试用例 在项目中创建一个名为“tests”的文件夹,然后在该文件夹中编写测试用例。例如,创建一个名为“test_example.py”的文件,包含以下内容: ```python def test_example(): assert 1 + 1 == 2 ``` 4. 集成 Pytest 和 Allure 报告 首先需要安装 Pytest 和 Allure: ```bash $ pip install pytest pytest-allure-adaptor allure-pytest ``` 然后在项目中创建一个名为“reports”的文件夹,用于存储测试报告。 接下来,在 Jenkins 中配置 Pytest 和 Allure: 1. 打开 Jenkins 管理页面; 2. 点击“Manage Jenkins” -> “Global Tool Configuration”; 3. 在“Python installations”中配置 Python 的路径; 4. 在“Allure Commandline”中配置 Allure 的路径。 然后在 Jenkins 中创建一个构建步骤,执行以下命令: ```bash $ pytest --alluredir=reports $ allure generate reports --clean -o reports/html ``` 这个命令将运行 Pytest 测试用例,并生成 Allure 报告。最后,可以在 Jenkins 中配置“Publish Allure Report”插件,将测试报告发布到 Jenkins 上。 完成以上步骤后,就可以使用 Docker + Jenkins + Git + Pytest + Allure 搭建项目自动化框架了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值