0
点赞
收藏
分享

微信扫一扫

Jenkins结合allure生成测试报告

JavaWeb_LeadNews_Day12-jenkins

后端项目部署

多环境配置切换

  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

举报

相关推荐

0 条评论