JavaWeb_LeadNews_Day12-jenkins

news/2024/5/7 9:15:00

JavaWeb_LeadNews_Day12-jenkins

  • 后端项目部署
    • 多环境配置切换
    • 服务集成docker配置
    • 父工程项目构建
    • 构建微服务
    • 部署服务到远程服务器
      • 整体思路
      • 安装私有仓库
      • jenkins插件
      • 部署服务
        • 准备工作
        • 部署服务
  • jenkins触发器
  • 来源
  • Gitee

后端项目部署

多环境配置切换

  1. 在微服务中的bootstrap.yml中新增配置
    spring:...pofiles:active: dev
    
  2. 在nacos的配置中心中新增各个环境的配置文件, 例如user微服务中新增
    • leadnews-user-dev.yml
    • leadnews-user-prod.yml

服务集成docker配置

  1. 服务集成docker配置, 引入依赖
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>heima-leadnews-service</artifactId><groupId>com.heima</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>heima-leadnews-user</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><docker.image>docker_storage</docker.image></properties><build><finalName>heima-leadnews-user</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.7.0</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.3.6</version><configuration><repository>${docker.image}/${project.artifactId}</repository><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins></build></project>
    
  2. 服务集成dockerfile文件
    # 设置JAVA版本
    FROM java:8
    # 指定存储卷, 任何向/tmp写入的信息都不会记录到容器存储层
    VOLUME /tmp
    # 拷贝运行JAR包
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    # 设置JVM运行参数, 这里限定下内存大小,减少开销
    ENV JAVA_OPTS="\
    -server \
    -Xms256m \
    -Xmx512m \
    -XX:MetaspaceSize=256m \
    -XX:MaxMetaspaceSize=512m"
    #空参数,方便创建容器时传参
    ENV PARAMS=""
    # 入口点, 执行JAVA运行命令
    ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /app.jar $PARAMS"]
    

父工程项目构建

  1. 新建项目
  2. 项目名称, 选择自由项目
  3. 项目描述
  4. git地址, 选择凭证
  5. 创建凭证(不对, 要用码云的账号密码, 但是好像没什么关系, 所以懒得改了, o.O)
  6. maven构建
  7. 构建项目

构建微服务

  1. 新建项目
  2. git地址, 凭证
  3. maven命令
    clean install -Dmaven.test.skip=true  dockerfile:build -f heima-leadnews-service/heima-leadnews-user/pom.xml
    
  4. shell脚本
    if [ -n  "$(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )" ]
    then
    #删除之前的容器
    docker rm -f $(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )
    fi
    # 清理镜像
    docker image prune -f 
    # 启动docker服务
    docker run -d --net=host -e PARAMS="--spring.profiles.active=prod"  --name $JOB_NAME docker_storage/$JOB_NAME
    
  5. 总结
    • ACCESS DENIED FOR USER 'ROOT'@'IP地址'错误可能是数据库密码没有正确输入

部署服务到远程服务器

整体思路

安装私有仓库

  1. 拉取Registry镜像
    docker pull registry:latest
    
  2. 创建Registry容器
    docker run -d -p 5000:5000 --name registry -v /usr/local/docker/registry:/var/lib/registry registry:latest
    
  3. 访问测试
    http://192.168.174.135:5000/v2/_catalog
    
  4. 配置Docker客户端
    正常生产环境中使用, 要配置HTTPS服务, 确保安全,内部开发或测试集成的局域网环境,可以采用简便的方式, 不做安全控制。
    vi /lib/systemd/system/docker.service# 修改内容
    ExecStart=/usr/bin/dockerd --insecure-registry 192.168.174.135:5000# 重启生效
    systemctl daemon-reolad
    systemctl restart docker.service
    

jenkins插件

  1. 安装插件
    • Publish Over SSH
    • SSH plugin
  2. 配置远程服务器连接
    位置:

    添加凭据:
    1.
    在这里插入图片描述
    2.
    在这里插入图片描述
    3.
    在这里插入图片描述
    配置ssh连接:
    在这里插入图片描述

部署服务

准备工作

  1. 在article微服务中集成docker配置(如上服务集成docker配置)
  2. bootstrap.yml
    spring:profiles:active: prod
    
  3. nacos添加-prod配置文件, 修改数据库地址和密码

部署服务

  1. 新建项目
    在这里插入图片描述
  2. 设置参数
    在这里插入图片描述
  3. git地址
    在这里插入图片描述
  4. maven构建命令
    在这里插入图片描述
  5. shell构建命令
    在这里插入图片描述
  6. 远程服务器命令
    在这里插入图片描述

jenkins触发器

  1. 远程触发
    在这里插入图片描述
  2. 其他项目构建后触发
    在这里插入图片描述
  3. 定时触发
    在这里插入图片描述
  4. 轮询触发
    在这里插入图片描述

来源

黑马程序员. 黑马头条

Gitee

https://gitee.com/yu-ba-ba-ba/leadnews

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.tangninghui.cn.cn/item-84.htm

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

javascript检测网页缩放演示代码

一、为什么会提示浏览器显示比例不正常&#xff1f; 在网上冲浪&#xff0c;有时在打某个网站时&#xff0c;会提示你的浏览器显示比例不是100%&#xff0c;建议你将浏览器显示比例恢复为100%&#xff0c;以便获得最佳显示效果。 二、检测网页缩放比例的方法 那么这些网站是如…

C# Onnx Yolov8 Detect 物体检测

效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System…

Git 学习笔记

Git 学习笔记 Git 简介 Git 是一个 开源的分布式版本控制系统。 什么是版本控制&#xff1f; 版本控制是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。 什么是分布式版本控制系统&#xff1f; 介绍分布式版本控制系统前&#xff0c;有…

Python用正则化Lasso、岭回归预测房价、随机森林交叉验证鸢尾花数据可视化2案例|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p33632 机器学习模型的表现不佳通常是由于过度拟合或欠拟合引起的&#xff0c;我们将重点关注客户经常遇到的过拟合情况&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 过度拟合是指学习的假设在训练数据上…

【Redis】Lua脚本在Redis中的基本使用及其原子性保证原理

文章目录 背景一、Eval二、EvalSHA三、Redis 对 Lua 脚本的管理3.1 script flush3.2 script exists3.3 script load3.4 script kill 四、Lua在Redis中原子性执行的原理 背景 Lua 本身是一种轻量小巧的脚本语言&#xff0c;在Redis2.6版本开始引入了对Lua脚本的支持。通过在服务…

2023国赛数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…