• springboot项目基于jenkins、docker自动构建发布


    1.在jenkins所在服务器上创建Dockerfile文件

    FROM centos:centos7.9.2009
    MAINTAINER liuzhibin
    # 安装JDK
    COPY jdk1.8.0_251 /var/local/jdk1.8.0_251

    ENV JAVA_HOME /var/local/jdk1.8.0_251
    ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV PATH=$JAVA_HOME/bin:$PATH

    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && yum install epel-release -y \
    && yum install kde-l10n-Chinese -y \
    && yum install glibc-common -y \
    && localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 \
    && export LANG=zh_CN.UTF-8 \
    && echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf

    ENV LANG zh_CN.UTF-8
    ENV LC_ALL zh_CN.UTF-8

    注:需将jenkins服务器上的jdk1.8.0_251拷贝至Dockerfile同目录下,因执行docker build时以当前所在目录作为根目录

    2.执行命令docker build centosjdk8,创建基础镜像

    3.在springboot项目下创建Dockerfile文件(做成各个环境通用的镜像)

    FROM centosjdk8
    MAINTAINER liuzhibin
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    RUN echo 'Asia/Shanghai' >/etc/timezone
    ADD /target/api.oarelate-1.0.0.jar / ADD app.sh / CMD ["bash","app.sh"] ENV CE=$CE

    4.在springboot项目下创建app.sh(正常应该可以直接继承在上面的文件中,但尝试时docker运行一直报Could not find main class,用此方式可正常运行)

    java -jar api.oarelate-1.0.0.jar --spring.profiles.active=$CE

    5.在springboot项目下添加dockerbuild.sh文件(额外创建latest的tag,这样获取时不再关注version,避免每次构建多处改动)

    version="1.0.5"
    
    docker build -t 192.168.10.89:8008/jmgo/api.oarelate:$version .
    docker tag 192.168.10.89:8008/jmgo/api.oarelate:$version 192.168.10.89:8008/jmgo/api.oarelate:latest
    docker push 192.168.10.89:8008/jmgo/api.oarelate:latest
    docker push 192.168.10.89:8008/jmgo/api.oarelate:$version

    6.在jenkins上安装插件ssh

    添加用户密码

    添加ssh节点

    7.在jenkins上添加构建项目

    通过shell:添加构建项目,创建docker,推送dockerhub

    mvn package spring-boot:repackage
    bash dockerbuild.sh

    通过远程shell:自动更新docker并运行

    docker rm -f api_oarelate
    docker pull 192.168.10.89:8008/jmgo/api.oarelate
    docker run -d -p 9199:9199 -v /home/api.oarelate/logs:/logs --privileged=true --restart=always -e CE="dev" --name api_oarelate 192.168.10.89:8008/jmgo/api.oarelate

    示意图

     8.Gitlab触发器设置

    在jenkins中指定通过GITlabwebhook触发

    在Gitlab中配置webhook及触发条件并保存

    9.配置邮件通知

    邮件内容:

    <!DOCTYPE html>    
    <html>    
    <head>    
    <meta charset="UTF-8">    
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
    </head>    
        
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
        offset="0">    
        <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
            <tr>    
                本邮件由系统自动发出,无需回复!<br/>            
                各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br> 
                <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
            </tr>    
            <tr>    
                <td><br />    
                <b><font color="#0B610B">构建信息</font></b>    
                <hr size="2" width="100%" align="center" /></td>    
            </tr>    
            <tr>    
                <td>    
                    <ul>    
                        <li>项目名称 : ${PROJECT_NAME}</li>    
                        <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
                        <li>触发原因: ${CAUSE}</li>    
                        <li>构建状态: ${BUILD_STATUS}</li>    
                        <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                        <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                        <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                        <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                    </ul>    
    
    <h4><font color="#0B610B">失败用例</font></h4>
    <hr size="2" width="100%" />
    $FAILED_TESTS<br/>
    
    <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
    <hr size="2" width="100%" />
    <ul>
    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
    </ul>
    详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
    
                </td>    
            </tr>    
        </table>    
    </body>    
    </html>  

     在项目中配置通知

  • 相关阅读:
    C#图片处理之:亮度和对比度的校正
    C#图片处理之:旋转图片90度的整数倍 .
    C#图片处理之:色彩调整 .
    C# 图片处理之:彩色图片转为黑白图 .
    C#图片处理之: 锐化
    C#图片处理之:图片缩放和剪裁 .
    C# 图片处理之:旋转图片任意角度 .
    C#图片处理之:Gamma校正 .
    C#图片处理之: 另存为压缩质量可自己控制的JPEG .
    c#图片处理之:在图片上打上文字
  • 原文地址:https://www.cnblogs.com/wishonline/p/13450967.html
Copyright © 2020-2023  润新知