it_lv 2 weeks ago
parent
commit
f98b87fd0d
2 changed files with 91 additions and 12 deletions
  1. BIN
      assets/image-20240827143708927.png
  2. 91 12
      第10章 Jenkins部署.md

BIN
assets/image-20240827143708927.png


+ 91 - 12
第10章 Jenkins部署.md

@@ -1,6 +1,59 @@
 ## 1、部署Springboot应用
 
-### 1.1 Docker开启远程访问
+### 1.1 Windows部署项目
+
+执行运行前准备工作:
+
+- 确保被依赖jar在本地Maven仓库中存在
+- 确保启动服务是可执行jar包,有springbootMaven打包插件
+
+如果Nacos配置文件中存在中文运行命令中需要设置编码
+
+```shell
+java -Dfile.encoding=UTF-8 -jar service-album.jar --server.port=8181
+```
+
+### 1.2 Centos部署项目
+
+在宿主机上安装JDK(配置环境变量)
+
+> 1. 将课后资料中的jdk-17_linux-x64_bin.rpm上传到jenkins所在服务器
+>
+> 2. 安装 jdk 17
+>
+>    ```shell
+>    sudo yum -y install ./jdk-17_linux-x64_bin.rpm
+>    ```
+>
+> 3. 验证
+>
+>    ```shell
+>    java -version
+>    ```
+
+守护进程方式启动Java进程:
+
+```shell
+nohup java -jar app.jar &
+tail -f xx.log -n 100
+```
+
+查询java进程得到进程ID
+
+```shell
+方式一:利用jdk自带命令jps查询本地所有java进程
+jps
+方式二:利用centos提供命令
+ps aux|grep java	
+```
+
+杀掉java进程
+
+```shell
+kill -9 pid
+```
+
+### 1.3 Docker开启远程访问
 
 将构建的镜像自动上传到服务器。需要开放 Docker 的端口,让我们在本地能连接上服务器的 Docker,这样,才能上传构建的镜像给 Docker。在部署环境服务器修改Docker 的服务文件
 
@@ -28,21 +81,37 @@ systemctl daemon-reload
 systemctl restart docker
 ```
 
-### 1.2 Docker-maven插件打包镜像
+### 1.4 Docker-maven插件打包镜像
+
+准备工作:
+
+```shell
+1.将课后资料中JDKDocker镜像压缩tar包上传到服务器
+2.通过命令解压jdk镜像到本地
+docker load -i jdk17.tar
+```
 
 1. 在Maven项目根目录下创建Dockerfile文件
 
-   ![image-20240530151356448](assets/image-20240530151356448.png)
+    ![image-20240530151356448](assets/image-20240530151356448.png)
 
 2. Dockerfile文件内容如下:
 
    ```shell
+   #目的:将当前项目制作为docker镜像
+   # 基础镜像 本地不存在镜像就会自动下载镜像
    FROM openjdk:17-jdk-alpine
+   # 作者
    MAINTAINER atguigu
+   # 执行shell命令:在镜像中创建文件夹 用于存放jar包
    RUN mkdir -p  /workspace/java/demo
+   # 复制jar包到镜像中
    COPY target/app.jar  /workspace/java/demo/app.jar
+   # 启动jar包执行命令
    ENTRYPOINT ["java", "-jar", "/workspace/java/demo/app.jar"]
+   # 设置环境变量
    CMD ["--spring.profiles.active=dev"]
+   # 暴露端口
    EXPOSE 8080
    ```
 
@@ -108,7 +177,7 @@ systemctl restart docker
                    <!-- 配置构建的镜像信息 -->
                    <configuration>
                        <!-- 指定远程 DockerAPI地址 -->
-                       <dockerHost>http://192.168.200.11:2375</dockerHost>
+                       <dockerHost>http://192.168.200.10:2375</dockerHost>
                        <!-- 构建的镜像名称以及版本号 -->
                        <imageName>${project.artifactId}</imageName>
                        <imageTags>
@@ -126,19 +195,25 @@ systemctl restart docker
 
 4. 在Maven窗口中执行package打包
 
-    ![image-20240530151643391](assets/image-20240530151643391.png)
+     ![image-20240530151643391](assets/image-20240530151643391.png)
 
 5. 查看服务器镜像列表
 
    ![image-20240530155524979](assets/image-20240530155524979.png)
 
-## 2、CI/CD简介
+6. 基于镜像进行产生容器
+
+   ```sh
+   docker run -d --name=myapp -p 8080:8080 springboot_docker:1.0
+   ```
+
+## 2、CI持续集成/CD持续交付
 
 CI/CD被称为持续集成和持续部署
 
 ### 2.1 devops概述
 
-在最开始的编程工作中,开发人员就是运维人员。随着软件开发复杂度不断增加,技术团队角色逐渐 增多(如开发工程师、运维工程师、测试工程师等),这种情况就导致组织里充斥着「部门墙」,大家 都自行其是,形成了一种天然壁垒。在非DevOps开发运维中,开发员创建代码,在他们自己的系统上对其进行测试,通过QA【质量保证部门】运行并将其推送到运行维护操作中。由于运维(Ops)团队无法承受对其系统进行**频繁更改**,因此新代
+在最开始的编程工作,开发人员就是运维人员。随着软件开发复杂度不断增加,技术团队角色逐渐 增多(如开发工程师、运维工程师、测试工程师等),这种情况就导致组织里充斥着「部门墙」,大家 都自行其,形成了一种天然壁垒。在非DevOps开发运维中,开发员创建代码,在他们自己的系统上对其进行测试,通过QA【质量保证部门】运行并将其推送到运行维护操作中。由于运维(Ops)团队无法承受对其系统进行**频繁更改**,因此新代
 
 码通常并不兼容。因此运维将代码发回给开发员而他们又必须又得从头开发,然后循环往复给两个团队带来了相互隔离的现象,为此,没有太多关于是什么原因导致代码不兼容的交流而带来各司其职不负责任的结果。
 
@@ -200,7 +275,7 @@ CI/CD是DevOps把理论变为现实的核心有效方法与方案。
 
 - 开发功能
 
-3、`代码仓库`: svn、github、Gitee(私有化git仓库)
+3、`代码仓库`: svn、github、Gitee(私有化git仓库-gitlab
 
 - 每天开发功能、提交、推送、合并
 
@@ -264,7 +339,11 @@ Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/
 
 具体步骤如下所示:
 
-1、注意:此时安装的时候如果是阿里的docker加速器,不会下载最新版本jenkins
+1、注意:此时安装的时候如果是阿里的docker加速器,不会下载最新版本jenkins或手动导入Jenkins镜像
+
+```shell
+docker load -i jenkins.tar	
+```
 
 2、使用docker安装jenkins
 
@@ -308,7 +387,7 @@ cat  /var/lib/docker/volumes/jenkins-data/_data/secrets/initialAdminPassword
 
 ![image-20230227133338564](assets/image-20230227133338564.png) 
 
-7、进入容器内部查看jenkins服务密码 。按照提示安装插件:(下载很慢,直接关闭该页面即可)
+7、进入容器内部查看jenkins服务密码 。按照提示选择**推荐安装插件**:(自动加载本地插件)
 
 ![image-20230227133610945](assets/image-20230227133610945.png) 
 
@@ -423,7 +502,7 @@ pipeline {  //开始一个流水线
 
 #### 3.2.1 流水线任务创建
 
-以部署deploy项目为例
+以部署deploy项目为例,先将项目上传到gitee
 
 具体步骤如下所示:
 
@@ -459,7 +538,7 @@ pipeline {  //开始一个流水线
 >    java -version
 >    ```
 
-2、在宿主机上安装MAVNE(配置环境变量)、配置阿里云镜像仓库地址  在/root目录下创建develop文件夹
+2、在宿主机上安装Maven(配置环境变量)、配置阿里云镜像仓库地址  在/root目录下创建develop文件夹
 
 >1. 在jenkins所在服务器创建目录用于存放Maven程序及Maven本地仓库
 >