IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker+Jenkins+Gitee实现maven项目CI或CD -> 正文阅读

[系统运维]Docker+Jenkins+Gitee实现maven项目CI或CD

一、前提

环境

  1. OS:centos8
  2. 云服务器:阿里云
  3. JDK:1.8
  4. Docker:20.10.7
  5. Jenkins容器:jenkinsci/blueocean:latest
  6. Maven:3.8.2
  7. Maven项目:springboot
  8. Git: 2.32.0.windows.2

前提知识

1. shell
  1. 推荐文章: JavaGuide的Shell篇
  2. 强调:理解linux挂载
2. docker
  1. 推荐文章: 奇客谷

  2. 强调:理解Dockerfile中命令

3. Jenkins
  1. 推荐文章: 奇客谷
4. Git
  1. 推荐文章:廖雪峰

二、安装软件

1. centos8下载Docker
  1. 官方安装文档
2. 在Docker下载Jenkins
  1. 官方安装文档

三、在Docker中运行Jenkins

1. 在centos8输入命令
docker run \
  -d \
  --rm \
  -u root \
  -p 8080:8080 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

四、Maven项目

1. 用idea创建一个springboot项目,端口号设置为12001
2. 目录

目录

3. 控制器
@RestController
@RequestMapping("/jenkins.docker")
public class JenkinDockerController {
    @GetMapping("/auto")
    public String getAuto(){
        return "lin";
    }
}
4. Dockerfile
FROM java:8-jre-alpine
VOLUME /data
RUN mkdir /app
ADD ./target/all_student-0.0.1-SNAPSHOT.jar /app/all_student.jar
ENV TZ Asia/Shanghai
EXPOSE 12001
ENTRYPOINT java -Xms128m -Xmx256m -jar /app/all_student.jar
5. 上传到Gitee
1. 创建一个all_student仓库(注意:仓库要是开源的,不能是私人的)
2. 然后把本地maven项目上传到Gitee中all_student仓库

Jenkins项目

安装插件

1. 找到插件管理

插件管理

2. 安装Gitee Plugin,Maven Integration Plugin和Docker Plugin
  1. 搜索这个三个插件,然后打勾,最后点击Install without restart安装并重启
  2. 安装完成后点击重启Jenkins

配置Jenkins

1. 登录Jenkins可视化界面: http://IP地址:8080/ 具体过程看奇客谷教程
2. 配置JDK
  1. 点击系统管理
    系统管理

  2. 选择全局工具配置全局工具配置
    3. 点击新增JDK
    jdk

  3. 别名随便写

  4. JAVA_HOME

    1. 登录Jenkins容器:在centos8服务器输入docker exec -it 容器ID /bin/bash
    2. 在命令行中输入echo $JAVA_HOME,centos8回显的值赋值给上图的JAVA_HOME
      JAVA_HOME
3. 配置maven
  1. 在centos8安装maven 参考文章:linux(centos8)下安装maven - 简书 (jianshu.com)

  2. 把下载的maven项目送到Jenkins容器中

    1. 在maven容器创建/usr/local/maven3目录

    2. docker cp 要拷贝的文件路径 容器ID:要拷贝到容器里面对应的路径(例子:docker cp /usr/local/maven3 12dd1df5df09:/usr/local/maven3)

    3. 验证是否成功
      cpMaven
      4. 在Jenkins可视化中全局工具配置(和查找JDK配置时一样)修改Maven配置maven配置

      1. 新增Mavenmaven安装

      2. 注意:关于Maven的路径根据自己放在Jenkins容器中的路径

      3. 配置Maven为环境变量

        1. 查看Jenkins环境变量 Jenkins容器中输入命令:env

        2. vi /etc/profile,在PATH添加maven路径(如下图)
          maven环境变量

        3. source /etc/profile

        4. mvn -version验证是否成功

        5. 防止重新打开终端,maven环境变量无,在命令行输入以下指令
          1. vi ~/.bashrc
          2. 在该文件添加 source /etc/profile,然后退出
          3. source ~/.bashrc

        6. 记得保存该容器为镜像,不然重新运行运行该容器,则maven的配置由于没有保存则maven要重新设置。

4. 配置Docker
  1. 进入系统配置系统配置

  2. 下滑到最后,点击cloud下的链接cloud

  3. 添加docker并点击Test Connection(会显示失败,接着往下操作)docker

  4. 开放centos8的docker供Jenkins调用

    1. 在centos8命令行输入
      vi /lib/systemd/system/docker.service
    2. 找到ExecStart,修改该值
      ExecStart=/usr/bin/docker daemon -H fd://   
      改为
      ExecStart=/usr/bin/docker daemon -H fd://                -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock

opendocker

  1. 然后 输入systemctl daemon-reload和sudo service docker restart

  2. 再测试一次

编写Jenkins项目

1. 创建Jenkins项目

创建Jenkins项目

2. 添加源码管理

git地址

3. 编写shell脚本
#!/bin/sh 
cd /var/jenkins_home/workspace/all_student
mvn clean install -Dmaven.test.skip=true
echo 'build all_student success'

cd /var/jenkins_home/workspace/all_student
docker build -f ./jenkins/Dockerfile -t all_student:uat .
echo 'build docker success'

docker stop all_studentt && docker rm all_student
docker run -d --network=host all_student:uat

shell脚本

4. 点击保存

结果

1. 进入创建的Jenkins项目

item

2. 点击立即构建并在立即构建下面查看运行结果

立即构建

3. 访问http://IP地址:12001/jenkins.docker/auto查看结果

result

遇到的问题

  1. Jenkins账号密码忘记:

    解决方案

  2. 查看端口号所在进程号

    1. netstat -nap | grep 端口号
  3. Jenkins项目执行步骤:先拉取gitee代码,再执行shell

  4. 注意要开放云服务器的端口,不然会被防火墙阻挡

  5. 挂载时,容器的目录要存在

  6. 出现mvn找不到的原因

    1. 由于shell版本没有加#!/bin/sh 故jenkins执行shell采用非登录方式
    2. 参考资料 jenkins无法执行命令

还需改进地方

  1. gitee可以用私人的
  2. maven项目的容器可以发送到docker hub
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:57:18  更:2021-08-24 15:58:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:41:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码